大家还是直接看代码吧~应用开发中的一个常见情景,为了避免简单重复,需要在基类中实现共用代码,着同样有助于后期维护。如果在以往的支持类继承的语言中,比如c++,Java,c#等,这很简单!可是go不支持继承,只能mixin嵌入且看下面的代码:如果支持继承,很明显应该输出。StrongMan中调用Say(),此时可以将指针传递到内嵌类,只是简单的指向了Man的方法,在ManKind中调用GetMouth就是ManKind自己的GetMouth,和StrongMan没有关系。当然,我们可以在StrongMan中覆盖Say方法此时,当然可以正确输出,因为本来调用的就都是StrongMan自己的方法了,这又和我们的初衷相违背了。3,包装类覆盖嵌入类字段后,亦然可以通过嵌入类的类名访问嵌入类的字段。
暂无评论