Java中abstract与interface

抽象类(abstract class)的特点:

1.抽象类、抽象方法都必须使用abstract修饰。

2.抽象类中,可以有非抽象方法,甚至可以是没有任何方法或变量的空类。

  对于抽象类中不定义抽象方法的用意在于:使该类不能被创建对象。

3.抽象方法,是不能有方法体的。

    对于抽象方法的访问限制符,可以是public、protected、不写。

4.抽象类,不能使用new创建对象。

5.抽象类的抽象方法,如果只有部分抽象方法被子类重写,则该子类依然是抽象类;如果抽象类的全部抽象方法被子类重写,则该子类可以是普通类,当然也可以是抽象类。

 

接口(interface)

接口可以认为是一个特殊的抽象类:该抽象类中的方法都是抽象的,则这个抽象类就可以用接口的形式来描述。

1.interface中,有定义常量,抽象方法。

  对于常量,默认使用的修饰符是:public static final.

  对于抽象方法,默认使用的修饰符是:public abstract.

   修饰符都只能是给定的任意组合,当然都是可以不写的,不管哪种,表示的效果都是一样的。

2.接口可以被类多重实现。

3.接口与接口之间,只能通过extends进行扩展。即称为:接口与接口之间拥有继承关系。

  虽然是继承(使用extends),但是可以写多个,即类似于多重继承。例如:

  Inter1 ,Inter2都是interface,则有 interface Inter3 extends Inter1,Inter2{}是正确的。

  对于普通类,Cla1,Cla2,都是Class,但是Class Cla3 extends Cla1,Cla2{}是错误的。

 

你可能感兴趣的:(interface)