面试题答案
一键面试- 错误:在类
B
中重写abstractMethod
方法时,没有使用public
修饰符。在Java中,当子类重写抽象类的抽象方法时,访问权限不能比父类中被重写方法的访问权限更严格。抽象类中抽象方法默认的访问权限为public
,所以子类重写时也必须是public
。 - 改正后代码:
abstract class A {
abstract public void abstractMethod();
}
class B extends A {
@Override
public void abstractMethod() {
System.out.println("Implementation");
}
}
这里在类B
的abstractMethod
方法前添加public
关键字,并使用@Override
注解(虽然不是必须,但推荐使用以明确表示重写)。