golang中的继承和组合的区别

go语言中的继承 指的是一个结构体中采用匿名的方式包含另外一个结构体 这个就叫做继承, 注意这里的匿名

组合 一个结构体用命名的方式包含另外一个结构体,这个就叫做组合

继承代码示例

Go 复制代码
	type A struct {
		Name string
		Age  int
	}
	type B struct {
		Addr string
		Name string
		A
	}
	type C struct {
		A
		B
	}
	
	func main(){
		var c1 C
		c1.A.Name = "aa"
		//c1.Name = "tom" // 报错  因为A和B里面都有Name 而C本身没有Name, ambiguous selector c1.Name
		c1.Age = 99 // 这个Age最终只有A里面有
	}

组合

Go 复制代码
	type D struct {
		a A // 结构体嵌入了其他结构体并指定了名称,这时叫做组合
		B
	}
	这时 要访问a里面的内容,则必须带上名字
	var d1 D
	d1.a.Name = "jack"
相关推荐
LucianaiB几秒前
王炸组合!腾讯云 OpenClaw X 飞书 CLI,开启 Agent 基建狂潮!
后端
白露与泡影4 分钟前
探索springboot程序打包docker的最佳方式
spring boot·后端·docker
开心就好20256 分钟前
本地执行 IPA 混淆 无需上传致云端且不修改工程的方案
后端·ios
Leo655356 分钟前
动态透视报表 + 查询接口 + Excel导出
开发语言·windows·python
呆萌很6 分钟前
【GO】指针练习题
golang
架构师沉默20 分钟前
为什么一个视频能让全国人民同时秒开?
java·后端·架构
BioRunYiXue33 分钟前
Nature Methods:CellVoyager 自主 AI 智能体开启生物数据分析新时代
大数据·开发语言·前端·javascript·人工智能·数据挖掘·数据分析
掘金码甲哥1 小时前
同样都是九年义务教育,他知道的AI算力科普好像比我多耶
后端
sthnyph1 小时前
SpringBoot Test详解
spring boot·后端·log4j