聊聊 Go 语言中的面向对象编程

2020-07-09 00:00:00 语言 定义 方法 类型 结构

我们知道,在 Go 语言中没有类(Class)的概念,但这并不意味着 Go 语言不支持面向对象编程,毕竟面向对象只是一种编程思想。

让我们回忆一下面向对象的三大基本特征:

  1. 封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式
  2. 继承:使得子类具有父类的属性和方法或者重新定义、追加属性和方法等
  3. 多态:不同对象中同种行为的不同实现方式

我们一起来看看 Go 语言是如何在没有类(Class)的情况下实现这三大特征的。

封装

「类」

在 Go 语言中可以使用结构体(Structs)对属性进行封装,结构体就像是类的一种简化形式。

例如,我们要定义一个矩形,每个矩形都有长和宽,我们可以这样进行封装:

type Rectangle struct {
    Length int
    Width int
}

相关文章