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"
相关推荐
qyzm2 小时前
天梯赛练习(3月13日)
开发语言·数据结构·python·算法·贪心算法
月月玩代码2 小时前
Actuator,Spring Boot应用监控与管理端点!
java·spring boot·后端
leluckys2 小时前
swift- Swift中常见的面试题
开发语言·汇编·swift
BUG_MeDe2 小时前
json格式字符串解析的简单使用 libjson-c
c语言·开发语言·json
yashuk2 小时前
Go-Gin Web 框架完整教程
前端·golang·gin
feng一样的男子2 小时前
NFS 扩展属性 (xattr) 提示操作不支持解决方案
linux·go
XPoet2 小时前
AI 编程工程化:Skill——给你的 AI 员工装上技能包
前端·后端·ai编程
CoderCodingNo2 小时前
【GESP】C++五级练习题 luogu-P1182 数列分段 Section II
开发语言·c++·算法
码事漫谈3 小时前
从“功能实现”到“深度优化”:金仓数据库连接条件下推技术的演进之路
后端