【GO】面向对象:继承性

简介: 【GO】面向对象:继承性

咔咔博客之继承性

  • 继承的意义在于低成本地扩展和改造原有代码
  • 首先,子类一行代码即可拥有父类的全部成员(属性和方法)
  • 继承的目的,在于扩展和改造父类
  • 扩展,是指子类发展出自己独有的新属性和新方法,以适应自身需求
  • 改造,是指子类覆写和覆盖父类成员(属性和方法),以适应自身需求

代码地址

https://github.com/fangkang7/goLearn

案例

首先我们需要定义父级的结构体和方法

屏幕快照 2022-05-18 下午7.52.15.png

image.png

知识点

在学到这一步貌似go的继承比PHP的要简单的多

go的继承只需要把父级的结构体名直接放到里边就行

继承后可以访问父级的属性和方法、也可以访问自己的专有属性、同时还拥有重写父级方法

代码

所有案例都配备有代码,直接扔进去就可以执行

package main
import "fmt"
// 父级结构体
type parent struct {
  name string
  age  int
  like []string
}
// 父级方法
func (p *parent) parentName() {
  fmt.Printf("我是父亲的名字%s\n", p.name)
}
// 孩子结构体
type child struct {
  // 继承父级
  parent
  // 孩子的专有属性
  play []string
}
// 孩子的方法
func (child *child) eat() {
  fmt.Println("咔咔喜欢吃右")
}
// 覆写父级的方法
func (child *child) parentName() {
  fmt.Println("我是覆盖父级的方法")
}
func main() {
  parent := new(parent)
  parent.name = "咔咔手赚网:fangkang.top"
  // 我是父亲的名字咔咔手赚网:fangkang.top
  parent.parentName()
  // 访问父类的属性和方法
  child := new(child)
  child.name = "咔咔博客地址:blog.fangkang.top"
  // 我是父亲的名字咔咔博客地址:blog.fangkang.top
  child.parentName()
  // 咔咔博客地址:blog.fangkang.top
  fmt.Println(child.name)
  // 访问特有的属性和方法
  // 咔咔喜欢吃右
  child.eat()
  strings := []string{"咔咔博客", "咔咔手赚网"}
  child.play = strings
  // [咔咔博客 咔咔手赚网]
  fmt.Println(child.play)
  // 访问覆盖父级的方法
  // 我是覆盖父级的方法
  child.parentName()
}
相关文章
|
7月前
|
Java Go C++
Go面向对象是如何实现的?
【2月更文挑战第23天】
89 0
|
4月前
|
程序员 Go
Go 语言:面向对象还是非面向对象?揭开编程语言的本质
Go 语言:面向对象还是非面向对象?揭开编程语言的本质
|
4月前
|
存储 Java Go
Go从入门到放弃之结构体(面向对象)
Go从入门到放弃之结构体(面向对象)
|
4月前
|
Go
Go 语言中的“继承”:使用结构体实现代码重用
Go 语言中的“继承”:使用结构体实现代码重用
50 0
|
6月前
|
设计模式 算法 Java
go语言进阶篇——面向对象(一)
go语言进阶篇——面向对象(一)
go语言进阶篇——面向对象(一)
|
Go
Go 也能实现 “继承”?
本文介绍了 Go 语言中的 “继承”,它是通过组合的思想去模拟实现面向对象中的继承。然后介绍了什么是类型嵌入以及类型嵌入的两种类型,嵌入的类型包含的字段和方法以隐式存在。 “继承”的实现,能够提高代码的复用性,代码的维护性和扩展性也得以提高。
352 1
Go 也能实现 “继承”?
|
Go
Go编程模式 - 3.继承与嵌入
业务逻辑依赖控制逻辑,才能保证在复杂业务逻辑变化场景下,代码更健壮!
55 0
|
设计模式 Go 数据安全/隐私保护
这些技巧你必须知道,Go语言模拟继承顶级指南
这些技巧你必须知道,Go语言模拟继承顶级指南
159 0
|
Cloud Native Java 编译器
100天精通Golang(基础入门篇)——第21天:Go语言面向对象(OOP)核心概念解析
100天精通Golang(基础入门篇)——第21天:Go语言面向对象(OOP)核心概念解析
133 0
go结构体嵌套和用结构体实现模拟“继承”
什么是结构体嵌套 一个结构体中可以嵌套包含另一个结构体或结构体指针
153 0