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

接口和继承

在这里插入图片描述
现在有一个需要要求大学生和足球运动员掌握英语技能,请问怎么实现?

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

type footballer struct {
}

func (this *footballer) studyEnglish() {
}

type daxuesheng struct {
}

func (this *daxuesheng) studyEnglish() {
}

其实,仔细一想这样有点不太规范。使用接口实现更好。
在这里插入图片描述
接口和继承解决的问题不同

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

接口比继承更加灵活

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值