【框架】接口VS抽象类

引言:

1、为什么抽象工厂中的抽象工厂要用接口?
2、抽象类和接口之间存在什么区别?
3、继承和实现之间的耦合关系大小?为什么?

从问题的深入,

我们来反过来解决这些问题:

3问:继承和实现之间的耦合关系大小?为什么?
在UML关系图中
在这里插入图片描述

从上到下,他们之间的耦合关系越来越弱
为什么呢?

类继承了抽象类:子类就包含了父类所有的方法,不管他有没有真的重写(隐式继承),子类是完全可以替换父类的
PS:补充说明一下,这也正是设计模式中的里式替换原则:子类可以完全代替父类

类实现了接口:虽然一样都是必须要实现接口中的所有方法。但是相比于继承关系,接口可以实现多个,但是java中类只能继承一个。所以说如果对于拓展方面来说,可以在不需要原有接口的情况下,再让类实现一个接口即可。
对于抽象类,需要修改类中的代码。
这也就是为什么说继承之间的耦合性要比实现的强的原因。

2问抽象类和接口之间的区别?
回想之前上篇博客例子1:再看一些百科的图
在这里插入图片描述
在这里插入图片描述
1问: 根据上面的例子,也就能明白为什么抽象工厂设计模式中抽象工厂使用的是接口了:
耦合性较低
易于拓展

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邢美玲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值