go语言【结构体-实现继承】
go语言其实不支持继承, 但是可以达到同样效果,组合
package main
import "fmt"
type Teacher struct {
Name string
Age int
Title string
}
func (t Teacher) teacherInfo() {
fmt.Printf("姓名:%s, 年龄:%d, 职称:%s", t.Name, t.Age, t.Title)
}
type Course struct {
Teacher //如果讲师的信息比较多怎么办 将另一个结构体的变量放进来
Name string
Price int
Url string
}
//匿名嵌套, 这种做法其实就是 语法糖 还不算是继承 有了前面的方法和这里的内嵌结构体 实际上 继承 封装
func (c Course) courseInfo() {
fmt.Printf("课程名:%s, 价格:%d, 讲师信息:%s %d %s", c.Name, c.Price, c.Teacher.Name, c.Age, c.Title)
}
//这种继承的效果说实话 有点说服不了人
func main() {
//go语言的继承 组合
t := Teacher{
Name: "bobby",
Age: 18,
Title: "程序员",
}
c := Course{
Teacher: t,
Price: 100,
Url: "",
Name: "django",
}
c.courseInfo()
}

浙公网安备 33010602011771号