手册
语言特性
Golang中的面向对象继承
补:
Go中有三种方式完成”继承“机制:1、在结构体的第一个字段匿名嵌入接口类型。2、在结构体的第一个字段匿名嵌入结构体实例。3、在结构体的第一个字段匿名嵌入结构体实例指针。
组合继承的缺点:如果B有F1和F2方法,F1调用了F2方法,A组合继承了B,并重写了F2方法。此时调用A.F1的话,不会调用到A重写的F2方法,只会调用B的F2方法。解决方法是B的F2内容抽取为F3,B定义函数变量指向F3,F2直接使用函数变量;A继承之后将函数变量指向自己的F2。
多态性:Golang不支持结构体的子类代替父类机制,但是支持接口类型的子类代替父类接口机制。