这篇文章主要是讲Java中的抽象类以及接口,话不多说我们首先来看看这两者的定义以及特性。
抽象类
1.抽象类不能直接被实例化,其他普通类具有的功能抽象类都具有。
2.抽象类可以同时具有抽象方法以及正常方法并且两者都不是必须的。但是当一个类中有抽象方法,那么这个类必须是抽象类。
3.抽象类被非抽象类继承的话,子类必须实现抽象方法。并且只能继承一个抽象类(正常的继承关系)。
接口
1.接口也不能被直接实例化,并且接口是没有构造方法的。
2.接口中所有的方法必须是抽象方法。
3.接口不能包含成员变量,只能定义常量。
4.接口不是被类继承的而是要实现,实现某个接口则必须要实现该接口的所有抽象方法。
5.接口和接口之间支持多继承。
从上面看来,我们可以看出这两者之间的区别以及共同点。一般我们在开发过程中可以根据具体场景去选择使用抽象类或者接口。
通常来说,当两个不相关的类具有共同要实现的方法时,我们可以选择使用接口将相同点抽象出来。
但是当我们要建立一个继承体系时,我们可以选择使用抽象类,例如当你要封装一个基类的时候。