Вопрос по полиморфизму/ наследованию
Условно у нас есть суперкласс A и подкласс B. Не раз в чужом коде замечал, что создавая объект класса В, пишут следующее:
- A object = new B(); а не
- B obj = new B();
Какой смысл от данного действия, если после подобного создания,у нашего объекта мы потеряем доступ к полям и методам именно класса В? Что мы выигрываем от такого, если объявив бы по варианту 2, мы бы все равно могли бы впихнуть свой объект в условный метод test(A obj);
Источник: Stack Overflow на русском