面向对象:Java 接口VS抽象类

2022-03-07  本文已影响0人  阿猫阿狗Hakuna

抽象类的特性

接口的特性

两者区别

抽象类表示的是is-a的关系,而接口表示的是has-a的关系,表示具有某种功能。对于接口,还有一种叫法,称为协议(contract)。

抽象类和接口能解决的编程问题

1.抽象类是为代码复用而生的。多个子类可以继承抽象类中定义的属性和方法,避免在子类中,重复编写相同代码。
2.抽象类更多是为了代码复用,而接口更侧重于解耦。接口实现了约定和实现相分离,可以降低代码间的耦合性,提高代码可扩展性。

该用抽象类还是接口?

如果要表示is-a的关系,且为了解决代码复用问题,就用抽象类;
如果要表示一种has-a的关系,且是为了解决抽象而非代码复用问题,就可以使用接口。

抽象类是自下而上的设计思路,先有子类的代码重复,然后再抽象成上层父类;而接口正好相反,是一种自上而下的设计思路。编程时,一般先设计接口,然后再去考虑具体实现。

上一篇下一篇

猜你喜欢

热点阅读