golang继承

项目中已经经常使用golang继承,现在总结一下,主要摘在Golang中的面向对象继承

总结如下:

  1. golang使用组合,可以将两个结构体简单组合形成一个新的数据类型
  2. 可以通过匿名嵌入方式实现继承,从而共享代码和数据
  3. 匿名嵌入有三种方式

    • 接口类型
    • 结构体实例
    • 结构体实例指针

    接口类型更加灵活,只要实现这个接口的方法都可以进行赋值。

    继承自其它结构体的struct类型可以直接访问父类结构体字段/方法

  4. 嵌入继承机制的局限

    Golang从根本上阻止了抽象方法的使用。

  5. 多态性

    golang不支持多态,即不能用子类替换父类。
    但是golang支持接口类型的多态机制,只要结构体实现了接口的方法就可以进行赋值。