Java抽象类和接口

0 评论 123 浏览

抽象类

定义方法的存在而不去实现它的类被叫做抽象类(abstract class)。

它用于创建一些需要体现一些基本行为,为这些行为声明方法,而不去提供其具体行为实现的场景。

抽象类不能被实例化,但是可以创建一个类型为抽象类的变量,指向它的一个具体子类实例。

不能有抽象构造方法 或 抽象静态方法。

子类需要为他们父类的所有抽象方法提供实现,否则其也是抽象类。

一个类只能继承一个抽象类。

接口

抽象类的变体,所有的方法都是抽象的,只有定义而没有具体实现。

一个类可以实现多个接口。

只能定义static final的成员变量。

可以使用instanceof来判断某个对象的类是否实现了指定接口。

类必须要实现接口声明的所有方法。

从JDK8开始,接口支持声明带实现的方法,需要由default关键字修饰方法。