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