Golang类继承

1. 继承和组合的区别

  • 继承
    如果一个struct嵌套了另一个匿名结构体,那么这个结构可以直接访问匿名结构体的方法,从而实现继承

  • 组合
    如果一个struct嵌套了另一个【有名】的结构体,那么这个模式叫做组合

  • 多重继承
    如果一个struct嵌套了多个匿名结构体,那么这个结构可以直接访问多个匿名结构体的方法,从而实现多重继承

2. 组合示例

这里plugin结构体需要设置一个GetName()函数来实现Plugin接口,其中参数name PluginName只是作为一个结构体存在,组合到plugin结构体中.

3. 继承示例

这里plugin结构体中存在匿名结构体PluginName,继承了匿名结构体PluginName中GetName函数.符合接口Plugin规范,不需要额外设置GetName函数;

这里如果匿名结构体是其他包中结构,例如package1.PluginName, 其定义和实例化如下:

4. 多重继承示例

赞赏

微信赞赏支付宝赞赏

《Golang类继承》有2个想法

发表评论

邮箱地址不会被公开。 必填项已用*标注