首页 > 其他 > 详细

42_接口之间的转换

时间:2019-09-22 00:17:02      阅读:133      评论:0      收藏:0      [点我收藏+]

//超集可以使用子集里面的方法,而子集不能调用超集里面的方法

//超集接口变量可以转换为子集接口类型,但是子集接口类型不可以转换为超集接口类型

代码如下:

package main

import "fmt"

type Hummaner interface {
	sing() //声明一个方法,并没有实现
}
type Studenter interface {
	Hummaner //匿名字段,嵌入字段
	play()   //声明一个方法,并没有实现
}
type Student struct {
	id   int
	name string
}

//type Techer struct {
//	id   int
//	name string
//}

func (s *Student) sing() {
	fmt.Println("学生在唱歌!!!")
}
func (t *Student) play() {
	fmt.Println("老师在玩耍!!!")
}
func main() {
	//studenter是超集,hummer是子集
	var s Studenter = &Student{1, "steven"} //指针接收
	var h Hummaner = s                      //超集可以转子集
	h.sing()
	var h1 Hummaner = &Student{1, "steven"}
	//var s1 Studenter = h1// cannot use h1 (type Hummaner) as type Studenter in assignment
	//s1.sing()
}

42_接口之间的转换

原文:https://www.cnblogs.com/zhaopp/p/11565515.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!