demo.go(方法的继承):
package main
import "fmt"
// 父类
type Person struct {
id int
name string
}
// 子类
type Student struct {
Person // 继承
score int
}
// 父类的方法 (子类可以继承父类的方法)
func (p *Person)Print() {
fmt.Printf("id:%d\n", p.id)
fmt.Printf("姓名:%s\n", p.name)
}
func main() {
var stu Student
stu.Person = Person{1, "张三"}
stu.score = 90
// 调用父类方法 (子类可以继承父类的方法)
stu.Print()
// 子类可以重写父类的同名方法。
// stu.Print() 默认调用子类的方法,如果子类没有该方法就会调用父类的Print()方法。
// stu.Person.Print() 调用的是父类的Print()方法
}