Go里没有 class 关键字,一切一切都是函数,但是面向对象毕竟毕竟只是一种思想,我们可以用另一种方法来实现 class
package main
import "fmt"
type Person struct {
name string
gender string
}
// 通过结构体嵌套来实现类的继承功能
type Student struct {
Person
}
type Teacher struct {
Person
}
// 通过把函数声明成某个结构的独有属性来实现类的函数功能
func (p *Person) say() string {
return "Hello World!"
}
func main() {
s := &Student{Person{
name: "张三",
gender: "男",
}}
t := &Teacher{}
fmt.Println(s.say())
fmt.Println(t.say())
}
Output
Hello World!
Hello World!