继承基本语法|学习笔记

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

开发者学堂课程【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 绑定的方法。

 

相关文章
|
7月前
|
安全 API Windows
CreateMutex用法
CreateMutex用法
|
7月前
|
安全 Java 容器
FilterChain用法总结
FilterChain用法总结
|
8月前
ThreadHelper用法
ThreadHelper用法
40 0
|
8月前
|
数据安全/隐私保护
关于DotNetZip的用法
关于DotNetZip的用法
81 0
iTween的用法总结
Unity3D插件-iTween的基本用法 本文提供全流程,中文翻译。Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) 1 ...
1688 0
|
JavaScript 前端开发 C#