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 分钟前
go cond 探索
go
缓解AI焦虑18 分钟前
大模型量化部署进阶:从 INT8/INT4 原理到高性能推理实战
后端
Felix_One32 分钟前
ESP32 + Qt 串口通信(一):从协议设计到双向数据链路
后端
用户3775154127634 分钟前
用 AR 眼镜打造你的办公助手,使用 Unity 开发到 Rokid 部署全记录
后端
小码哥_常35 分钟前
Spring Boot文件访问安全:筑牢数据防线,让漏洞无处遁形
后端
初次攀爬者36 分钟前
BIO、NIO 和 AIO 基础介绍
后端
小码哥_常36 分钟前
告别繁琐try - catch!打造全局异常拦截的魔法城堡
后端
Hoffer_38 分钟前
MySQL 强制索引:USE/FORCE INDEX 用法与避坑
后端·mysql
Hoffer_40 分钟前
MySQL 索引核心操作:CREATE/DROP/SHOW
后端·mysql
神奇小汤圆42 分钟前
拒绝写重复代码,试试这套开源的 SpringBoot 组件,效率翻倍~
后端