すべての情報を読みましたが、この基本的なオーバーライドが不可能な理由はまだ見つかりません。説明してください。ジェネリックでメソッドをオーバーライドする最も単純な例
class Fruit{}
class Apple extends Fruit{}
class Parent {
public Set<Fruit> getIt(){
return null;
}
}
class Child extends Parent {
@Override // THIS DOESN'T WORK
public Set<Apple> getIt(){
return null;
}
}
完了するだけです。アレイは共変種である。だから、このコードはうまくいくはずです。\t \tクラスフルーツ{} \tリンゴ果実{} \t \tクラスの親を拡張\tクラス{ \t \t公共フルーツ[] getIt(){ \t \t \t戻りヌル。 \t \t} \t \t} \t \tクラスの子供は、親{ \t \t @Override //これは \t \t公共アップル[] getIt(){ \t \t \t戻りヌルを動作するに延在。 \t \t} \t \t} – Veeram
確か。もちろん、配列共分散の型に違反しようとすると、例外がスローされます。配列の共分散型の安全性は、実行時に強制されます。 –