腾讯微群加入QQ群

 找回密码
 加入我们

!connect_header_login!

!connect_header_login_tip!

搜索
查看: 1019|回复: 0

Go语言编程(十三)之匿名组合

[复制链接]
发表于 2016-8-11 18:16:40 | 显示全部楼层 |阅读模式

   确切的说,Go语言也提供了继承,但是采用了组合的文法,所以我们将其称为匿名组合:

type Base struct {
    Name string
}
func (base *Base) Foo() {...}
func (base *Base) Bar() {...}
type Foo struct {
    Base
    ...
}
func (foo *Foo) Bar() {
    foo.Base.Bar()
    ...
}
以上代码定义了一个Base类(实现了Foo()和Bar()两个成员方法),然后定义了一个Foo类,该类从Base类“继承”并改写了Bar()方法(该方法实现时先调用了基类的Bar()方法)。

在“派生类”Foo没有改写“基类”Base的成员方法时,相应的方法就被“继承”,例如上面的例子中,调用foo.Foo()和调用foo.Base.Foo()效果一致。

0
0

转自:http://blog.csdn.net/JoeySheng/article/details/52162512
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

QQ|手机版|Archiver|小黑屋|一起疯|苦咖啡 ( 新ICP备12000197号  

GMT+8, 2018-6-18 22:59 , Processed in 0.096966 second(s), 12 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表