前端之家收集整理的这篇文章主要介绍了
golang学习的点点滴滴:利用组合实现继承,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
packagemain
import"fmt"
typeBasestruct{
Namestring
}
func(b*Base)SetName(namestring){
b.Name=name
}
func(b*Base)GetName()string{
returnb.Name
}
//组合,实现继承
typeChildstruct{
baseBase//这里保存的是Base类型
}
//重写GetName方法
func(c*Child)GetName()string{
c.base.SetName("modify...")
returnc.base.GetName()
}
//实现继承,但需要外部提供一个Base的实例
typeChild2struct{
base*Base//这里是指针
}
func(c*Child2)GetName()string{
c.base.SetName("canuser?")
returnc.base.GetName()
}
funcmain(){
c:=new(Child)
c.base.SetName("world")
fmt.Println(c.GetName())
c2:=new(Child2)
c2.base=new(Base)//因为Child2里面的Base是指针类型,所以必须提供一个Base的实例
fmt.Println(c2.GetName())
}
原文链接:https://www.f2er.com/go/190750.html