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