面向对象编程三大特征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的主要内容,如果未能解决你的问题,请参考以下文章

Java面向对象编程三大特征 - 封装

Python入门-6面向对象编程:07面向对象三大特征(封装继承多态)-继承

Java 大厂面试必刷题 Day1:何为面向对象编程的思想?面向对象三大特征是什么?

Java 大厂面试必刷题 Day1:何为面向对象编程的思想?面向对象三大特征是什么?

哪些是面向对象程序设计的三大特征

面向对象三大特征是啥?