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"
相关推荐
进击的_鹏3 分钟前
【C++11】initializer_list列表初始化、右值引用和移动语义、可变参数模版等
开发语言·c++
mark-puls9 分钟前
C语言打印爱心
c语言·开发语言·算法
AAA修煤气灶刘哥10 分钟前
Kafka 入门不踩坑!从概念到搭环境,后端 er 看完就能用
大数据·后端·kafka
月小水长11 分钟前
大模型接入自定义 MCP Server,我开发了个免费使用的基金涨跌归纳和归因分析的 Agent
人工智能·后端
yinke小琪13 分钟前
说说hashCode() 和 equals() 之间的关系
java·后端·面试
西阳未落17 分钟前
C语言柔性数组详解与应用
c语言·开发语言·柔性数组
Huhbbjs17 分钟前
SQL 核心概念与实践总结
开发语言·数据库·sql
咕噜咕噜啦啦31 分钟前
Qt之快捷键、事件处理、自定义按键——完成记事本项目
开发语言·qt
花果山最Man的男人31 分钟前
@Autowired注解使用说明
后端