Java同时提供和支持抽象类和接口,它们的实现有一些共同的特点,也有如下不同:
•接口中所有的方法默认都是抽象的,而抽象类可以同时包含抽象和非抽象的方法。
•一个类可以实现多个接口,但它只能继承一个抽象类。
•一个类要实现某个接口,必须实现这个接口声明的所有方法。而一个类不需要实现抽象父类中声明的所有方法,不过,这时候这个类也必须声明为抽象类。
•抽象类可以实现接口,而且不需要实现接口中的方法。
•接口中声明的变量默认是final的,而抽象类可以包含非final的变量。
•接口中的成员默认是public的,而抽象类的成员可以是private,protected,或public的。
•接口是绝对抽象的,不可实例化,抽象类也不可以实例化,但可以在main方法中触发实例化(注:通过匿名类实现)。
|
|