package main
import "fmt"
//定义接口类型
type Human interface { // 子集
sayHi()
}
type Student interface { // 父集
Human // 匿名 字段, 继承了 sayHi()
study(lrc string)
}
type Humaner struct {
name string
number int
}
// Humaner 实现了sayHi()
func (temp *Humaner) sayHi() {
fmt.Println("Humaner is that :", temp.name, temp.number)
}
//Humaner 实现了 singer()
func (temp *Humaner) study(irc string) {
fmt.Println("student在唱着:", irc)
}
func main() {
//定义一个接口类型的变量
//首先在写这个之前,我们需要知道,我们把对象赋给接口
//然后我们是通过接口进行调用函数, 实现了不同的对象调用同一个方法
//确产生了 不同的效果,因为调用者本身不一样,这样带来的好处就是实现了方法的多态和便于管理
// 这一章节 我们实现了接口的继承。也就是说批量了实现了方法的继承
var i Student
s := &Humaner{"alan", 19}
i = s
i.sayHi()
i.study("......")
}
其实我们在这里只需要得到2点内容, 第一点就是继承接口相当于方法的批量的继承, 第二点
我们一般可以将想类似的方法进行封装 , 达到一个便于管理的效果。 也是多态的表现