java怎么拦截某个对象
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~