class Dog наследует Animal { eat() {собака кушает} #переопределенный метод bark() {собака гавкает} }
Animal animal = new Dog в переменной animal находится объект Dog этот объект хранит все члены класса Dog то есть метод eat() {"собака кушает"} и метод bark() {"собака гавкает"} но почему этот метод bark() не вызывается?
Потому что метода bark нет в Animal. Надо отличать сам объект в памяти и тип ссылки. У вас тип ссылки на Animal - доступны только его публичные методы.
eat() {животное кушает}
}
class Dog наследует Animal {
eat() {собака кушает} #переопределенный метод
bark() {собака гавкает}
}
Animal animal = new Dog
в переменной animal находится объект Dog
этот объект хранит все члены класса Dog
то есть метод eat() {"собака кушает"}
и метод bark() {"собака гавкает"}
но почему этот метод bark() не вызывается?