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"
相关推荐
_日拱一卒9 分钟前
LeetCode:114二叉树展开为链表
java·开发语言·算法
木雷坞11 分钟前
Home Assistant 升级翻车:一套 Docker Compose 回滚清单
后端
李小狼lee11 分钟前
《spring如此简单》第四节--IOC思想的实现,spring启动后发生了什么
后端·面试
天天进步201512 分钟前
从零打造 Python 全栈项目:智能教学辅助系统
开发语言·人工智能·python
SamDeepThinking15 分钟前
面试官问Bean线程安全,你该从架构角度回答
java·后端·面试
用户3983461612017 分钟前
Go-Spring 实战第 7 课 —— Profile 多环境配置:基础配置与环境差异如何避免复制
spring·go
用户7138742290018 分钟前
git fsck 深度解析 Git 仓库的体检医生
后端
风度前端23 分钟前
阿里云宝塔面板部署https证书
linux·后端·https
kkeeper~28 分钟前
0基础C语言积跬步之内存函数
c语言·开发语言