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"
相关推荐
m0_694845579 分钟前
UVdesk部署教程:企业级帮助台系统实践
服务器·开发语言·后端·golang·github
泉飒10 分钟前
C2001: 常量中有换行符-QT解决办法-逆向思路
开发语言·qt
ghie909017 分钟前
基于学习的模型预测控制(LBMPC)MATLAB实现指南
开发语言·学习·matlab
@atweiwei20 分钟前
Go语言面试篇数据结构底层原理精讲(下)
数据结构·面试·golang
咚为20 分钟前
Rust 经典面试题255道
开发语言·面试·rust
woniu_maggie27 分钟前
SAP FICO 分割评估_sap凭证分割配置
后端
十六年开源服务商27 分钟前
家庭装修公司网站方案策划2026
java·开发语言
Mr_Xuhhh30 分钟前
深入理解Java高级特性:反射、枚举与Lambda表达式实战指南
开发语言·python
XiYang-DING32 分钟前
【Java】TOP-K问题
java·开发语言
枫叶丹433 分钟前
【HarmonyOS 6.0】Navigation组件新特性
开发语言·华为·harmonyos