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"
相关推荐
掘金者阿豪6 分钟前
被一个标量子查询折腾了两天,最后发现是数据库自己“偷了懒”
后端
吃好睡好便好10 分钟前
矩阵的加减运算
开发语言·人工智能·学习·线性代数·算法·matlab·矩阵
吃好睡好便好18 分钟前
提取矩阵特定多行元素
开发语言·线性代数·算法·matlab·矩阵
Mister西泽22 分钟前
C++ Primer Plus 第六版 编程练习题及详细答案
开发语言·c++·学习·visual studio
百度Geek说28 分钟前
告别死锁和陈旧语法、告别性能瓶颈:新手Gopher 秒变 Go 语言大神
人工智能·go
武子康28 分钟前
Java-08 深入浅出 Mybatis 数据库多对多关系设计:中间表、映射与性能优化
java·后端·spring
明月_清风33 分钟前
二进制序列化入门——为什么二进制比文本更快、更小?
后端·protobuf·messagepack
froginwe1135 分钟前
Python 循环嵌套
开发语言
咕白m6251 小时前
Excel 工作表名称读取(Python 实现)
后端·python
雪隐1 小时前
AI股票小助手00-导言
人工智能·后端