Q37
题目定义了两个 public class, 所以如果要完全模拟题目的情景,需要创建两个 .java 文件。因为每个 .java 文件里有且只能有一个 public clas.
// Parent.java
public class Parent {
public float aFun(float a, float b) throws IOException {
// ...
}
}
// Child.java
public class Child extends Parent {
// The following method definition will cause compilation error due to
// reducing the visibility of aFun(float, float)
float aFun(float a, float b) { }
}方法的可见性级别(访问权限)分为:
- public
- protected
- 默认级别,什么都不用写
- private
在 Java 中,子类继承父类时不能降低父类方法的可见性。
在此,Child 的 aFun 方法是默认级别的,可见性比 public 低,所以会造成编译错误(compilation error).