面向对象编程三大特征3
Posted green-frog-2019
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象编程三大特征3相关的知识,希望对你有一定的参考价值。
多重继承介绍:
结构体的匿名字段是基本数据类型,如何访问,下面代码输出什么?
匿名字段练习:
type Monster struct
Name string
Age int
type A struct
Monster
int //匿名字段是基本数据类型
n int
func main()
//演示一下匿名字段基本数据类型的使用
var a A
a.Name = "狐狸精"
a.Age = 300
a.int = 20
a.n = 40
fmt.Println("a=", a)
说明:
1)如果一个结构体有int 类型的匿名字段,就不能有第二个。
2)如果需要有多个int类型的字段,则必须给int字段指定名字。
多重继承说明:
如一个struct 嵌套了多个匿名结构体,那么该结构体可以直接访问嵌套的匿名结构体的字段和方法,从而实现了多重继承。
案例演示:
type Goods struct
Name string
Price float64
type Brand struct
Name string
Address string
type TV struct
Goods
Brand
func main()
tv1 := TV Goods"电视机001", 5000,Brand"海尔", "山东青岛",
tv2 := TV
Goods"电视机002", 5000.99,
Brand"西门子", "北京",
tv3 := TV
Goods
Price : 4000,
Name : "电视机003",
,
Brand
Name : "夏普",
Address : "上海",
,
fmt.Println(tv1)
fmt.Println(tv2)
fmt.Println(tv3)
多重继承细节说明:
1)如嵌入的匿名结构体有相同的字段名或者方法名,则在访问时,需要通过匿名结构体类型名来区分。
tv1 := TV Goods"电视机001", 5000,Brand"海尔", "山东青岛",
fmt.Println(tv1.Goods.Name)
fmt.Println(tv1.Price)
2)为了保证代码的简洁性,建议大家尽量不使用多重继承
以上是关于面向对象编程三大特征3的主要内容,如果未能解决你的问题,请参考以下文章
Python入门-6面向对象编程:07面向对象三大特征(封装继承多态)-继承
Java 大厂面试必刷题 Day1:何为面向对象编程的思想?面向对象三大特征是什么?