抽象类和接口的区别

211 阅读1分钟

1.接口:

因为java不支持多继承,所以有接口,一个类只能继承一个父类,但是可以实现多个接口,接口本身也可以继承接口。

接口里面的成员变量默认都是私有变量(public static final)必须被初始化

接口里面的方法默认是public abstract类型的隐式声明

接口没有构造方法,不能被实例化

接口不能实现另外一个接口,但是可以继承多个接口

类如果实现了一个接口,那么必须实现接口里面的所有方法,否则类要被定义为抽象类

2.抽象类:

如果一个类被声明为abstract,该类不能生成对象,只能被继承

抽象方法必须存在在抽象类中

抽象类可以有一般的变量和方法

子类继承抽象类必须实现其中的抽象方法abstract void fangfa{ };

区别

1.接口和抽象类都不能被实例化

2.接口不包含构造方法,抽象类可以包含构造方法

3.接口只能包含抽象方法,抽象类可以包含普通方法

4.接口只能定义静态常量属性(public static final),抽象类既可以定义普通变量,也可以定义静态常量属性