zhanxuewei
Published on 2024-04-22 / 10 Visits
0
0

接口和抽象类的区别

首先,从定义角度来看,接口使用interface关键字定义,而抽象类使用abstract class关键字定义。

其次,在实现方式上,类使用implements实现接口,但使用extends继承抽象类。一个类可以实现多个接口,但只能继承一个抽象类。

第三,在方法实现方面,接口中的方法默认是抽象的(Java 8前),不能有具体实现(Java 8后可以有默认方法);而抽象类既可以包含抽象方法,也可以包含具体实现的方法。

第四,在成员变量方面,接口中的变量默认都是public static final的常量;而抽象类可以有普通的成员变量。

第五,接口不能有构造方法,抽象类可以有构造方法(虽然不能直接实例化,但子类可以调用)。

最后,在设计理念上,接口更强调"能做什么"的行为规范,而抽象类更强调"是什么"的类层次关系。

在实际开发中,如果只是定义行为规范,我会优先考虑使用接口;如果需要共享代码或建立类层次关系,我会选择抽象类


Comment