golang学习笔记——接口和继承比较2

接口和继承

golang学习笔记——接口和继承比较2_第1张图片
现在有一个需要要求大学生和足球运动员掌握英语技能,请问怎么实现?

给运动员和学生结构体添加studyEnglish方法显示是可以的,但是篮球动员和中学生也学习了英语,显示不行。这时,我们可以直接给足球运动员和大学生添加方法,这样子足球运动员和大学生都可以学习英语了。

type footballer struct {
}

func (this *footballer) studyEnglish() {
}

type daxuesheng struct {
}

func (this *daxuesheng) studyEnglish() {
}

其实,仔细一想这样有点不太规范。使用接口实现更好。
golang学习笔记——接口和继承比较2_第2张图片
接口和继承解决的问题不同

继承的价值主要在于:解决代码的复用性可维护性
接口的价值主要在于:设计,设计好各种规范(方法),让其它自定义类型去实现这些方法。

接口比继承更加灵活

接口比继承更加灵活,继承是满足 is - a的关系, 而接口只需满足 like - a 的关系

接口 在一定程度上实现代码解耦

你可能感兴趣的:(golang从入门到入门,学习,笔记)