5.4 使用内嵌来扩展已有类型

一、内嵌的做法:需要省下许多代码

  1. 内嵌方式与组合方式类似,但是有做修改

    type myTreeNode struct {
    	*tree.TreeNode
    }

    备注:更类似于一种语法糖

    字段的名字就是引用字段的最后一个.后面的名字

    或者不用名字,直接使用内部变量

二、与继承对比

  1. 重载

    // 新定义的函数(方法名同原有的方法名)
    func (myNode *myTreeNode) Traverse() {
        // 操作
    }
    
    // 调用原有的方法
    .原有类.方法名

    备注:调用同名方法时候发生,类似重载

Last updated

Was this helpful?