Скажем, у меня был класс SuperClass и два подкласса SubClassA и SubClassB, которые наследуются от SuperClass.Переменные экземпляра «Переопределения» в подтипе: Возможные риски?
abstract class SuperClass{
...
List someList;
...
}
class SubClassA extends SuperClass{
...
List<String> someList;
...
}
class SubClassB extends SuperClass{
...
List<Integer> someList;
...
}
Таким образом, это удобно, потому что я могу получить someList.size()
в Superclass
и имеют типобезопасность в подклассы. Проблема в том, что он не «чувствует» себя правильно, можете ли вы подумать о потенциальных опасностях, которые имеет этот apporach, о котором я не знаю?
Они могут быть разными ссылками, указывающими на один и тот же объект. (Хотя 'private' и' final' помогли бы как всегда.) –
@ Тома, хорошая точка, не подумал об этом ... возможно, потому что, хотя семантически правильно, это все равно было бы уродливым, излишне сложным, понять решение (для меня). –
Я нашел трудный путь, что он фактически затеняет. Единственное, что я сделал здесь, это по существу трюк компилятора (и меня). – sebastiangeiger