Java八股之接口和抽象类的区别

张开发
2026/4/17 21:48:19 15 分钟阅读

分享文章

Java八股之接口和抽象类的区别
特性接口抽象类定义定义了一组方法的契约不包含具体实现定义了一组方法的骨架可以包含具体实现继承关系接口之间支持多重继承类之间只能单继承成员变量只能定义常量默认为public static final可以定义实例变量并且可以有不同的访问权限构造函数不能定义构造函数可以定义构造函数方法实现所有方法都需要被实现可以包含已经实现的方法但也可以包含抽象方法实例化对象不能直接实例化接口不能直接实例化抽象类使用场景用于描述一组相关的行为或能力用于定义一组相关的类提供默认的行为和共享的属性抽象类可以提供成员方法的实现细节而接口中只能存在public abstract方法抽象类中的成员变量可以是各种类型的而接口中的成员变量只能是public static final类型的接口中不能含有静态代码块以及静态方法而抽象类可以有静态代码块和静态方法一个类只能继承一个抽象类而一个类却可以实现多个接口。最简回答接口是一种规范它定义了一组方法的签名而不包含具体实现。一个类可以实现多个接口。抽象类是一种可以包含具体方法和抽象方法的类它可以被继承但不能被实例化。一个类只能继承一个抽象类。简而言之接口关注的是行为的规范而抽象类关注的是共享的功能。

更多文章