В C # у меня есть три класса: Person, Cat и Dog.
И классы Cat, и Dog имеют метод Eat ().
Я хочу, чтобы у класса Person было свойство Pet.
Я хочу иметь возможность вызывать метод Eat для Cat и Dog через Person через что-то вроде Person.Pet.Eat (), но я не могу, потому что свойство Pet должно быть либо типа Cat, либо Dog. .
В настоящее время я обхожу это с помощью двух свойств в классе Person: PetDog и PetCat.
На данный момент это нормально, но если бы мне нужно было 100 различных типов животных в качестве домашних питомцев, то я действительно не хочу иметь 100 различных свойств Pet в классе Person.
Есть ли способ обойти это с помощью интерфейсов или наследование? Есть ли способ установить для питомца тип Object, но при этом получить доступ к свойствам любого назначенного ему класса животных?