C # Упрощенный пример .
Иерархия классов: Animal -> Pet -> Dog
В каждом классе есть метод Eat()
, который выполняет что-то определенное для этого уровня иерархии.
Когда я звоню Dog.Eat()
, мне нужно Pet.Eat()
, тогда Animal.Eat()
вызывается в таком порядке.
Я попытался добавить ко всем подклассам:
public override void Eat() {
base.Eat();
}
и на базе Animal
:
public virtual void Eat(){
}
Это не кажется правильным, так как я получаю предупреждение, что я должен использовать ключевое слово "new" в Dog.Eat()
, поскольку оно скрывает базу Eat()