Java接口和抽象类的区别(美团)

定义与语法

抽象类:使用abstract关键字定义,既能包含抽象方法(没有方法体的方法),也能包含具体方法(有方法体的方法)。一个类只能继承一个抽象类。
接口:使用interface关键字定义,接口中的方法默认是public abstract(公开抽象的),在 Java 8 之前,接口里只能有抽象方法,但从 Java 8 开始,接口可以有默认方法和静态方法。一个类能够实现多个接口。

继承和实现

抽象类:通过extends关键字来继承,一个类只能继承一个抽象类。继承抽象类的子类必须实现抽象类中的所有抽象方法,除非子类也是抽象类。
接口:通过implements关键字来实现,一个类可以实现多个接口。实现接口的类必须实现接口中的所有抽象方法(默认方法和静态方法除外)。

成员变量

抽象类:可以有各种访问修饰符(private、protected、public)的成员变量,并且可以有静态变量和实例变量。
接口:接口中的成员变量默认是public static final(公开静态常量),必须在声明时进行初始化,并且不能被修改。

posted @ 2025-03-24 23:30  蒟蒻00  阅读(18)  评论(0)    收藏  举报