Golang 并不支持面向对象设计,但是它一些特性使许多面向对象的设计方法得以引入。

数据存储 - 结构体

静态绑定 - 方法

继承

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package main

import "fmt"

type A struct {
name string
}

func (a *A) getName() string {
return a.name
}

type B struct {
A
}

func main() {
b := B{A{"abab"}} // 注意构造方式
fmt.Println(b.getName())
}

虚类与反射 - 接口