golang学习笔记——面向对象(方法)
继承 匿名字段(可以是任意类型)
package main
import (
"fmt"
)
type Person struct {
id int
username string
sex byte
}
type Student struct {
Person //匿名字段继承了Person的成员
score int
rank int
}
func main() {
//顺序初始化
var s1 Student = Student{Person{1, "mayuan", 'm'}, 30, 50}
fmt.Printf("s1 = %+v \n", s1)
//指定初始化
s2 := Student{Person: Person{id: 10}, score: 30}
fmt.Println("s2 = ", s2)
}
- 成员操作(.)
- 指针类型
- 在调用方法时系统会自动将变量转为 指针或者普通变量
- 匿名字段的方法可以被继承
- 方法值和方法表达式