golang-面向对象-继承
继承的定义
提高复用性
- 把共同的属性和方法放到一个父结构体中,可以多次继承,不用每次都创建,只需要嵌套一个匿名结构体即可.
- 也就是说在golang中,如果一个结构体嵌套了一个匿名结构体 则这个结构体可以直接访问这个匿名结构体的属性和方法.
代码的引入
1 |
|
1 |
|
注意事项
- 嵌套的结构体可以使用被嵌套结构体的所有属性和方法,不论大写还是小写
- 匿名结构体字段的访问可以简化
s1.Person.Name => s1.Name
- 当结构体和匿名结构体有相同的属性或者方法时候,会使用结构体的属性或者方法
- 如果想访问匿名结构体的属性或者方法可以用过匿名结构体名来访问
s1.person.Name
- golang中支持多继承,一个结构体可以继承多个结构体,为了提高代码的简洁性,建议不要如此使用
- 如果嵌入结构体的匿名结构体之前属性和方法有冲突,则需要通过匿名结构体名来访问
- 如果多个结构体的属性有冲突就不能使用简化的方式引用,因为程序没有默认选择是哪个属性
- 结构体的匿名字段可以是基本数据类型
1 |
|
传入匿名函数的指针
1 |
|
结构体字段可以是结构体类型
1 |
|