Я пытаюсь реализовать и переопределить метод с разными типами возвращаемого значения без необходимости приведения типа возвращаемого значения.
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
}
Мой вопрос: можно ли возвращать разные типы без принуждения? Как абстрактный метод выглядит для решения проблемы?
Я думаю, что должно быть решение, потому что компилятор должен знать тип возвращаемого значения...