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"
相关推荐
掘金者阿豪7 分钟前
多台服务器日志怎么统一清理?Ansible、Cron与cpolar自动化方案
后端
浮游本尊36 分钟前
Java学习第45天 - 消息队列入门、异步解耦与最终一致性(RabbitMQ / RocketMQ)
后端
fallen_fish41 分钟前
多路径写入一致性:从一次 Debug 到系统性防御
后端
用户2986985301442 分钟前
Word 文档字符级格式化:Java 实现方案详解
java·后端
血小溅43 分钟前
Skill 脚本语言选型:Python、Node.js、Shell 到底怎么选?
人工智能·后端
Heracles102443 分钟前
一篇文章教你学会MCP
后端
范闲44 分钟前
Charmbracelet TUI 生态系统指南
后端
颜进强1 小时前
AI性能参数-截断、延迟与流式输出
前端·后端·ai编程
浮游本尊1 小时前
Java学习第44天 - 本地二级缓存 Caffeine、Redis 分布式锁与热点 Key / 库存预扣
后端
浮游本尊1 小时前
Java学习第43天 - Redis 缓存基础、Cache-Aside 模式与缓存一致性
后端