golang学习的点点滴滴:利用组合实现继承
发布时间:2020-12-16 18:49:16 所属栏目:大数据 来源:网络整理
导读: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()stri
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()) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |