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"
相关推荐
山上三树8 分钟前
详细介绍 C 语言中的匿名结构体
c语言·开发语言·算法
大猫和小黄9 分钟前
Java开发过程中的各种ID生成策略
java·开发语言·id
李梨同学丶9 分钟前
好虫子周刊:1-bit LLM、物理 AI、DeepSeek-R1
后端
-曾牛9 分钟前
Yak:专注安全能力融合的编程语言快速入门
安全·网络安全·golang·渗透测试·编程语言·yakit·yak
繁依Fanyi10 分钟前
从初识到实战 | OpenTeleDB 安装迁移使用指南
开发语言·数据库·python
小罗和阿泽10 分钟前
java [多线程基础 二】
java·开发语言·jvm
小罗和阿泽10 分钟前
java 【多线程基础 一】线程概念
java·开发语言·jvm
橘颂TA16 分钟前
线程池与线程安全:后端开发的 “性能 + 安全” 双维实践
java·开发语言·安全
bruce_哈哈哈21 分钟前
go语言初认识
开发语言·后端·golang