23.Go面向对象-接口继承与转换

网友投稿 231 2022-09-24

23.Go面向对象-接口继承与转换

23.Go面向对象-接口继承与转换

7 接口继承与转换(了解)

接口也可以实现继承:

// 子集type Humaner interface { sayhi()}// 超集type Personer interface { Humaner // 匿名字段,继承sayhi() sing(lrc string)}// 学生类type Student struct { name string id int}// Student实现sayhifunc (tmp *Student) sayhi() { fmt.Printf("Student[%s, %d] sayhi\n", tmp.name, tmp.id)}func (tmp *Student) sing(lrc string) { fmt.Printf("Student在唱着: %s\n", lrc)}func main() { // 定义接口类型的变量 var i Personer s := &Student{"mike", 666} i = s i.sayhi() // 继承过来的方法 i.sing("学生哥")}

执行如下:

Student[mike, 666] sayhiStudent在唱着: 学生哥

接口继承后,可以实现“超集”接口转换“子集”接口,代码如下:

// 定义接口类型的变量// 超级可以转换为子集,反过来不可以var iPer Personer // 超集iPer = &Student{"mike", 666}var iHum Humaner // 子集iHum = iPer // 超级转换为子集iHum.sayhi() // 继承过来的方法

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:5.Go运算符
下一篇:苹果双11再办发布会推更多新品 与英特尔15年联盟宣告终结!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~