packagemainimport"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())}总结
以上是内存溢出为你收集整理的golang学习的点点滴滴:利用组合实现继承全部内容,希望文章能够帮你解决golang学习的点点滴滴:利用组合实现继承所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)