戻り型をキャストすることを強制されることなく、異なる戻り型を持つメソッドを実装してオーバーライドしようとしています。
public abstract class A {
public abstract Object getValue(String content);
}
public class B extends A {
public String getValue(String content) {...}
}
public class C extends A {
public int getValue(String content) {...}
}
public class D extends A {
public boolean getValue(String content) {...}
}
// Main loop:
for (A a : allAs)
{
// I want to use the method getValue() and corresponding to the type return a String, int or boolean without casting the return type
}
私の質問:キャストを強制されることなく、異なるタイプを返すことは可能ですか?問題を解決するための抽象メソッドはどのように見えますか?
コンパイラは戻り型を知っている必要があるので、解決策が必要だと思います...