A と B の 2 つのクラスがあり、A は B のスーパークラスであるとします。ここで、両方のクラスで関数 (オーバーライド)、たとえば funct() を記述します。では、B のオブジェクトから A の funct() を呼び出したいのですが、可能でしょうか?
質問する
537 次
3 に答える
0
与えられたクラス
class A {
public void funct() {...}
}
class B extends A {
@Override
public void funct() {...}
}
あなたが尋ねる
では、B のオブジェクトから A の funct() を呼び出したいのですが、可能でしょうか?
それでは取りましょう
B b = new B();
b.funct();
A a = b;
a.funct();
((A)b).funct();
上記のすべては、ポリモーフィズムと遅延バインディングのために同じことを行います。
super
スーパークラスの実装を呼び出す唯一の方法は、キーワードを通じてそのメンバーへの参照を取得することです。
class A {
public void funct() {...}
}
class B extends A {
@Override
public void funct() {
super.funct();
}
}
于 2013-09-26T16:25:41.200 に答える