- 含有抽象方法的类即为抽象类;但抽象类不一定含有抽象方法; 接口中的方法全部为抽象方法,可以说是特殊的抽象类;
- 接口使用 interface 修饰;抽象类使用 abstract class 修饰;
- 接口中的所有成员变量都是 public static final 修饰的,不可改变;所有方法使用 public abstract 修饰,即使不写也是;而抽象类中的成员变量和方法可以用其他修饰符;
- 抽象类只能继承,而 java中继承是单继承,抽象类也是,如果继承抽象类的类没有实现抽象类的所有抽象方法,那么他也必须是抽象类;
接口与类之间的关系称之为实现,一个类可以实现多个接口;如果一个类没有实现接口中的所有方法,那么他必须是抽象类;接口与接口之间可以多继承; - 抽象类和接口都不能被实例化,但抽象类如果包含的Main方法可以被调用