先前对抽象类和接口的特点不是很清楚,而抽象类是对类的抽象,而接口是功能的集合,所以理解二者的特点以及在继承和实现方面很重要,所以专门对二者进行了总结,具体如下:
1.接口和抽象类一样不能实例化,使用interface关键字表示接口,接口是功能的合集。接口里只能有常量和抽象方法,不能有构造方法,代码块,变量,普通方法等。
2.类在使用implements关键字实现接口时,必须将接口中的抽象方法都实现,如果不实现该类必须为抽象类。
3.类和抽象类均可以实现多个接口,不过类在实现接口后必须重写接口的方法。
4.一个类使用abstract关键字表示抽象类,抽象类里可以有抽象方法也可以没有抽象方法,有抽象方法的类一定是抽象类,而且抽象类中还可以有构造方法,代码块,变量,普通方法等。抽象方法不能实例化。
5.java中只能进行单继承,即一个类只能继承一个类或抽象类,当类继承抽象类时必须重写抽象类中的方法,除非该类也为抽象类。
6. 最后对类、抽象类、接口直接的关系进行总结,如下图所示