Java编程--抽象类和接口的区别

No.

区别

抽象类

接口

1

关键字

abstract class

interface

2

组成

构造方法、普通方法、抽象方法、static方法、常量、变量

抽象方法、全局常量

3

子类使用

class 子类 extends 抽象类

class 子类 implements 接口,接口

4

关系

抽象类可以实现多个接口

接口不能继承抽象类,却可以继承多个父接口

5

权限

可以使用各种权限

只能使用public权限

6

限制

一个子类只能继承一个抽象类(单继承局限)

没有单继承局限

7

子类

抽象类和接口必须有子类,子类必须实现所有抽象方法

8

实例化

依靠子类的向上转型进行对象的实例化

经过比较可以发现,抽象类中支持的功能绝对要比接口更多,但是抽象类不能多继承,这就掩盖里抽象类的所有优点,即:当抽象类和接口都可以使用的时候,优先使用接口。

不成文的参考:

                      ·在进行某些公共操作的时候一定要定义接口;

                      ·有了接口就需要子类完善方法;

                      ·如果是自己写的接口,那么绝对不要使用关键字new实例化接口,利用工厂设计模式。


posted @ 2018-05-20 09:20  雨中遐想  阅读(3)  评论(0编辑  收藏  举报  来源