在此Java练习考试中,提供了以下代码:
abstract class Planet {
protected void revolve() {} //line n1
abstract void rotate(); //line n2
}
class Earth extends Planet {
void revolve() {} //line n3
protected void rotate() {} //line n4
}
此考试指定将line n3
更改为公开将允许代码进行编译,这是有道理的,因为它将解决可见度降低的问题。
但是,这也表明将line n2
更改为public
将允许代码进行编译。由于子类的可见性降低,这不会产生编译错误吗?