Интерфейс против базового класса


когда я должен использовать интерфейс, и когда я должен использовать базовый класс?

должен ли он всегда быть интерфейсом, если я не хочу фактически определять базовую реализацию методов?

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

30 717

30 ответов: