MST

星途 面试题库

面试题:Java中抽象类常见误区之方法重写相关

在Java中,定义了一个抽象类A,其中有一个抽象方法abstractMethod。现在有一个具体类B继承自A并实现abstractMethod方法。请指出以下代码片段可能存在的关于抽象类常见误区的错误: abstract class A { abstract void abstractMethod(); } class B extends A { void abstractMethod() { System.out.println("Implementation"); } } 若有错误,请说明原因并改正。
32.5万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试
  1. 错误:在类B中重写abstractMethod方法时,没有使用public修饰符。在Java中,当子类重写抽象类的抽象方法时,访问权限不能比父类中被重写方法的访问权限更严格。抽象类中抽象方法默认的访问权限为public,所以子类重写时也必须是public
  2. 改正后代码
abstract class A {
    abstract public void abstractMethod();
}
class B extends A {
    @Override
    public void abstractMethod() {
        System.out.println("Implementation");
    }
}

这里在类BabstractMethod方法前添加public关键字,并使用@Override注解(虽然不是必须,但推荐使用以明确表示重写)。