0

Объясните, что происходит во время создания объекта?

A a = new A();

Вроде бы было всё понятно, что создаётся экземпляр класса A, выделяется память, вызывается конструктор, присваивается ссылка на объект, но так я думал лишь до тех пор, пока не столкнулся с повышающий и понижающим преобразованиями (upcast, downcast), просто не понимаю в чём смысл создавать например Animal dog = new Dog();, если при наследовании класса Dog, от класса Animal, можно просто указать Dog dog = new Dog();, и как мне кажется ничего не потерять. Все принципы работы я обычно предпочитаю понимать досконально и во всех деталях т.е знать значение каждого символа, понимать логику работы и так далее. Но вот тут я к сожалению поплыл . В общем огромная просьба разъяснить или поделиться источником, в котором было бы всё это более менее расписано.

Kromster
  • 13,809

1 Answers1

0

Ты создаёшь экземпляр класса animal и при создании объекта cat и например dog. Но они буду создаваться с методами animal а реализация этих конкретных методов будет браться из dog и cat. Но хотя объекты кот и собака разные объекты но ты можешь их например сохранить в один список. Потому что это объекты animal. И работать с этим списком. Или ты можешь создать объект указав перед = интерфейс с методами который тебе нужен. И по этому интерфейсу группировать объекты разных классов. И работать с ними как будто это объекты одного класса. Например можно создать список который будет принимать объекты типа animal. Туда можно будет положить и cat и dog