0

A と B の 2 つのクラスがあり、A は B のスーパークラスであるとします。ここで、両方のクラスで関数 (オーバーライド)、たとえば funct() を記述します。では、B のオブジェクトから A の funct() を呼び出したいのですが、可能でしょうか?

4

3 に答える 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 に答える