Интерфейс против базового класса
когда я должен использовать интерфейс, и когда я должен использовать базовый класс?
должен ли он всегда быть интерфейсом, если я не хочу фактически определять базовую реализацию методов?
Если у меня есть класс собаки и кошки. Почему я хочу, чтобы реализовать ипет вместо PetBase? Я могу понять наличие интерфейсов для ISheds или IBarks (IMakesNoise?), потому что они могут быть размещены на домашнем животном на основе домашних животных, но я не понимаю, что использовать для общего домашнего животного.