Являются ли интерфейсы просто способом пометить классы как имеющие общую функциональность?
Я новичок в программировании. Я видел некоторые прошлые вопросы о назначении интерфейсов. Ответы, которые я видел, в целом делятся на два типа:
1. Некоторые ответы просто объяснят, что такое интерфейс.
2. в других ответах будет сказано, что интерфейс позволяет наследовать от нескольких классов или наследовать по структуре, а не по классу.
Насколько я понимаю, реализация интерфейса на самом деле ничего не наследует от интерфейса, потому что вам приходится писать с нуля все, что вы якобы наследуете от интерфейса. Поскольку интерфейс имеет только подписи, у него действительно нет ничего, что вы можете унаследовать, кроме названия.
Поскольку (насколько я знаю) вы наследуете только имя интерфейса, но ничего больше, возможно, реальная ценность интерфейса заключается в том, что он может пометить группу классов как имеющих некоторую общую функциональность?
Примечание: Я уже задавал этот вопрос в "Stackoverflow", но получал только насмешливые и нецивилизованные ответы от людей, которые, вероятно, не понимали этого вопроса. Пожалуйста, будьте лучше и воздержитесь от нецивилизованных выражений, даже если вы не уважаете вопрос. Мое величайшее уважение всем порядочным людям здесь.
Что я уже пробовал:
Интерфейсы C#, такие как ICommand и INotifyPropertyChanged.
[no name]
Думайте об этом как о интерфейсе = контракте. Зная, что класс реализует определенный интерфейс, вы знаете, что класс должен обладать определенной функциональностью. Например, если у вас есть класс, реализующий IDisposable, вы знаете, что у этого класса есть механизм для удаления неуправляемых ресурсов, о которых он знает.
HD86_
Спасибо. То, что вы говорите, имеет для меня смысл.
HD86_
Комментарий NotPolicallyCorrect полностью отвечает на мой вопрос. Меня не интересуют объяснения того, как работает интерфейс. Я только хочу знать причину, по которой мы его используем.