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"
相关推荐
喵了meme21 小时前
C语言实战4
c语言·开发语言
码界奇点21 小时前
Python从0到100一站式学习路线图与实战指南
开发语言·python·学习·青少年编程·贴图
码事漫谈21 小时前
C++ 多线程开发:从零开始的完整指南
后端
9ilk21 小时前
【C++】--- 特殊类设计
开发语言·c++·后端
码事漫谈21 小时前
十字路口的抉择:B端与C端C++开发者的职业路径全解析
后端
sali-tec21 小时前
C# 基于halcon的视觉工作流-章68 深度学习-对象检测
开发语言·算法·计算机视觉·重构·c#
提笔了无痕1 天前
git基本了解、常用基本命令与使用
git·后端
java1234_小锋1 天前
Spring IoC的实现机制是什么?
java·后端·spring
喵个咪1 天前
开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:JWT 集成指南
后端·go
生骨大头菜1 天前
使用python实现相似图片搜索功能,并接入springcloud
开发语言·python·spring cloud·微服务