05
2017
09

抽象类和接口的区别

 举例:

  犬:

  行为:共有的行为 吼叫;吃饭;共有的行为,而且行为不明确没法定义方法体,定义为抽象方法,也就是抽象类

  缉毒犬:

  行为:共有的行为 吼叫;吃饭;共有的行为

  缉毒;额外行为  定义为接口

从上面的案例分析可以得出抽象类和接口的区别

相同点:

        都位于继承的顶端,用于被其他类实现或继承;

       都不能直接实例化对象;

         都包含抽象方法,其子类都必须覆写这些抽象方法;

区别:

        抽象类为部分方法提供实现,避免子类重复实现这些方法,提高代码重用性;接口只能包含抽象方法;

        一个类只能继承一个直接父类(可能是抽象类),却可以实现多个接口;(接口弥补了Java的单继承)

        抽象类是这个事物中应该具备的内容

        接口是这个事物中的额外内容


二者的选用:

        优先选用接口,尽量少用抽象类;

        需要定义子类的行为,又要为子类提供共性功能时才选用抽象类;


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

扫一扫,求打赏 扫一扫,求打赏