Java 后端面试题库 / 全部题解免费阅读理解原理,有条理地回答

接口能继承接口吗?抽象类能实现接口、继承具体类吗?

查看完整题解

参考回答

直接回答

三种情况都可以。接口用 extends 继承一个或多个接口;抽象类可以 implements 接口,并允许把尚未实现的抽象行为留给具体子类;抽象类也能 extends 一个允许被继承的具体类。是否有 abstract 修饰,不会取消 Java 的普通继承与访问规则。

讲清原理

接口不能 extends 一个普通类,因为它的父类型列表应是接口。抽象类继承具体类后,可以复用允许继承的实现,再增加抽象要求;但不能继承 final 类,也要遵守 sealed 父类型的许可规则。

实现接口的方法仍需满足签名、可见性、返回类型和异常等要求。一个具体子类若没有补齐所需实现,就不能只靠去掉 abstract 让编译器接受。

例子与易错点

interface A { String text(); }
interface B extends A {}
class Base { String prefix() { return "结果"; } }
abstract class Middle extends Base implements B {}
class Result extends Middle {
    public String text() { return prefix(); }
}
System.out.println(new Result().text()); // 结果

Middle 继承了具体行为,也保留接口中的抽象义务。抽象类不是必须“从零开始”的类型;它既能扩展已有实现,也能继续为下一层定义契约。

相关题:第 8 题、第 9 题、第 21 题。

这道题,你掌握得怎么样?

掌握程度由你主动标记,阅读和收藏不会自动改变状态。