Java 抽象类与接口总结


一、为什么要使用抽象类?有什么好处?
抽象类是通用接口。不同的子类可以用不同的方法表示此接口。通用接口建立起一种基本形式,以此表示所有子类的共同部分。
必须覆写父类abstract抽象的方法 
含有抽象方法的类必须被声明为抽象类,抽象类的子类必须覆写所有的抽象方法
如果子类是抽象类,可以不用覆写

二、为什么要使用通用接口?
接口和内部类为我们提供了一种将接口与具体实现 分离的 更加结构化的方法。
可以确定方法方法名、参数和返回类型,但是没有任何具体实现。

三、比较抽象类与接口
  抽象类 接口
关键字 abstract interface
目的区别 可以重用你代码使你的代码更加简洁 一个类间的协议,它并没有规定怎么去实现
行为 只能单继承 可以多继承,multi-implement
是否可以有构造? 可以有构造方法,但是不能执行?  
属性 没有要求 必须是常量(即public static final;且不能使空白final)
方法 可以包含抽象方法,也可以包含非抽象方法 每个方法只是声明不包括方法体
访问权限 都可以 必须public级别
是否可以实例 不行 不行
是否可以声明abstract YES NO,默认都是abstract

四、参考资料
《澄清Java语言接口与继承的本质》
http://hi.baidu.com/%B3%C2%C0%CB%CF%C9/blog/item/f8caaec3c2253255b219a875.html
“抽象就是抽去像的部分”

《我对面向对象设计的理解——Java接口和Java抽象类》
http://hi.baidu.com/%B3%C2%C0%CB%CF%C9/blog/item/6fa5242dc0101034359bf752.html

 

《Java抽象类和接口的区别(好长时间没看这种文章了) 》
http:// www.blogjava.net/chunkyo/archive/2007/01/21/95093.html


原文地址:https://www.cnblogs.com/fuhaots2009/p/3476595.html