Rah*_*arg 13 java overriding private
我对这段代码有两个问题
public class Override {
private void f() {
System.out.println("private f()");
}
public static void main(String[] args) {
Override po = new Derived();
po.f();
}
}
class Derived extends Override {
public void f() {
System.out.println("public f()");
}
}
/*
* Output: private f()
*/// :~
Run Code Online (Sandbox Code Playgroud)
1)如何在Override po的引用上看到函数f;
2)为什么输出"private f()"
Jes*_*per 24
该main方法在类内部Override,因此它可以看到类的私有成员Override.
你没有f在课堂上重写方法,Derived没有多态性.变量的类型po是Override,因此它将f从类中获取方法Override.
请注意,f类中的方法在类中Override根本不可见Derived.该方法f在课堂上Derived是一种不同的方法,不具有任何与该方法f在超类.
| 归档时间: |
|
| 查看次数: |
4073 次 |
| 最近记录: |