接口,抽象类

使用抽象类是为了代码的复用,而使用接口的动机是为了实现多态性。

抽象类适合用来定义某个领域的固有属性,也就是本质,接口适合用来定义某个领域的扩展功能。

使用抽象类:

  1. 当2个或多个类中有重复部分的时候,我们可以抽象出来一个基类,如果希望这个基类不能被实例化,就可以把这个基类设计成抽象类。
  2. 当需要为一些类提供公共的实现代码时,应优先考虑抽象类 。因为抽象类中的非抽象方法可以被子类继承下来,使实现功能的代码更简单。
  3. 抽象类只能是单继承的,不能多继承。

使用接口:

当注重代码的扩展性跟可维护性时,应当优先采用接口。

①接口与实现它的类之间可以不存在任何层次关系,接口可以实现毫不相关类的相同行为,比抽象类的使用更加方便灵活;

②接口只关心对象之间的交互的方法,而不关心对象所对应的具体类。接口是程序之间的一个协议,比抽象类的使用更安全、清晰。一般使用接口的情况更多。

原文地址:https://www.cnblogs.com/KL2016/p/15513317.html