0

宿題でこの問題があり、インターネットで解決策を見つけることができないようです。

スーパークラスとそのサブクラスがあります。別のクラスでは、メソッドのスーパークラスをパラメータとして使用する必要がありますが、サブクラスにメソッドが必要ですが、スーパークラスをキャストするとコンパイラがそれを見つけることができません。私のコードは次のようになります。

public class A{...}

public class B extends A{
...
public boolean methodX(){...}
}

public class DifferentClass{

public void methodY(A a){
if(a instanceof B){
(B)a.methodX();
}
}
}

シンボルが見つかりませんというエラーが表示されますが、これは、教師が私たちに言ったようにクラスとメソッドを構築する必要がある方法です(スーパークラス、メソッドを含むサブクラス、および別のクラスのメソッドである必要がありますスーパークラスの指定されたパラメーター)。

助けてくれてありがとう

4

2 に答える 2

2

.キャストより優先度が高い。したがって、別の括弧のセットが必要です。

((B) a).methodX();
于 2013-10-27T19:10:10.960 に答える
1

あなたのキャストは間違っています、そうあるべきです((B) a).methodX()

于 2013-10-27T19:09:20.143 に答える