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"
相关推荐
q***64973 分钟前
SpringSecurity踢出指定用户
android·前端·后端
Coding_Doggy6 分钟前
链盾shieldchiain | 团队功能、邀请成员、权限修改、移除成员、SpringSecurity、RBAC权限控制
java·开发语言·数据库
q***76666 分钟前
SpringSecurity 实现token 认证
android·前端·后端
川白10 分钟前
为防在家摸鱼,用计网知识实践屏蔽B站!
后端
吃果冻不吐果冻皮16 分钟前
DeepSeek 视觉语言大模型技术演进(从DeepSeek VL/VL2到DeepSeek OCR)
后端
申阳16 分钟前
Day 15:01. 基于 Tauri 2.0 开发后台管理系统-Tauri 2.0 初探
前端·后端·程序员
武子康19 分钟前
大数据-164 Apache Kylin Cuboid 剪枝实战:Derived 维度与膨胀率控制
大数据·后端·apache kylin
Lear22 分钟前
Java中byte[]转MultipartFile
后端
程序员小假24 分钟前
有了解过 SpringBoot 的参数配置吗?
java·后端
f***241125 分钟前
java学习进阶之路,如果从一个菜鸟进阶成大神
java·开发语言·学习