继承基本语法|学习笔记

简介: 快速学习继承基本语法

开发者学堂课程【Go 语言核心编程 - 面向对象、文件、单元测试、反射、TCP 编程:继承基本语法】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/626/detail/9692


继承基本语法

 

内容简介:

一、继承基本介绍和示意图

二、嵌套匿名结构体的基本语法

 

一、 继承基本介绍和示意图

1. 继承基本介绍

(1)继承可以解决代码复用,让编程更加靠近人类思维。在现实生活中也有继承的概念,比如儿子会继承父亲的财或产一些特性或一些基因等等。

(2)当多个结构体存在相同的属性(字段)和方法时,可以从这些结构体中抽象出结构体(比如刚才的 Student ),在该结构中定义这些相同的属性和方法。

(3)其他的结构体不需要重新定义这些属性和方法,只需嵌套一个Student 匿名结构体即可。

(4)也就是说:在 Golang 中,如果一个 struct 嵌套了另一个匿名结构体,那么这个结构体可以直接访问匿名结构体的字段和方法,从而实现了继承特性。可以发现 Golang 里学的面向对象编程比 Java 简单许多。

2. 示意图

打开 Excel 文件,在上一节中写了 Pupil 和 Graduate 两个结构体,它们各自有它的一些字段和绑定方法,同时在写 Graduate 时可以发现它里面的很多字段和方法与 Pupil 里的字段和方法是相同的。继承首先会将 Pupil 和 Graduate 里面共有的字段和方法提取出来,且保留 Pupil 和 Graduate 它们独特的属性和其特有的方法,然后再想一个办法使它们形成继承关系,注意继承的概念和很多编程语言是靠一个关键词完成的,并不是靠 Graduate ,它为了体现继承效果用了匿名结构体,也就是把共有的 student 的名字嵌入 Pupil 和Graduate 里,这样就无需再重写 student 里面共有的字段和方法了。在 Golang 里它实现继承是靠在结构体里嵌入一个匿名结构体,这样便实现了继承,这个和很多的 OOP 语言不一样, Golang 把面向对象编程弱化了,它不希望结构体之间有太多封装和继承在里面,包括后面在学习接口时也能体现这个特点。示意图如下:

image.png

 

二、嵌套匿名结构体基本语法

type Goods struct {    //Goods 是商品/货物的意思。任何一个商品或/货物都有其名字和价格

Name string

Price int

}

type Book struct { //结构体为 Book

Goods //这里就是嵌套匿名结构体 Goods

Writer string

}

Book 也是一种商品,若不想把其名字和价格再写一遍,那么就可以嵌套匿名结构体 Goods ,这时 Book 结构体相当于拥有了 Name 和Price 这两个字段;当你想把 Goods 引进来时,可以用和 Goods 绑定的方法。

 

相关文章
|
23天前
ThreadHelper用法
ThreadHelper用法
7 0
|
4月前
|
机器学习/深度学习 数据可视化 API
Gymnasium的基本用法
Gymnasium的基本用法
93 0
|
5月前
LambdaQueryWrapper用法
LambdaQueryWrapper用法
|
10月前
|
Python
__name__的基本用法
__name__的基本用法
66 0
|
10月前
|
Java Spring
@ConditionalOnProperty的用法
@ConditionalOnProperty的用法
235 0
$.each()的用法
$.each()的用法
197 0