golang学习的点点滴滴:利用组合实现继承

前端之家收集整理的这篇文章主要介绍了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

猜你在找的Go相关文章