Почему я должен пойти на интерфейсы в C #, когда я могу реализовать методы напрямую

Я знаю, что это очень простой вопрос, но интервьюер задал мне очень хитрый вопрос, и я был беспомощен :(

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

Я также не понимаю одну вещь в интерфейсе. например, мы используем

conn.Dispose(); в конце концов блок. Но я не вижу, чтобы класс реализовывал или наследовалIDisposable интерфейс (SqlConnectionкласс я имею ввиду. Мне интересно, как я могу просто назвать имя метода. Кроме того, я не понимаю, как работает метод Dispose, потому что нам нужно реализовать тело функции с нашей собственной реализацией для всех методов интерфейса. Так как интерфейсы принимаются или называются контрактами? Эти вопросы до сих пор были в моей голове, и, честно говоря, я никогда не видел ни одной хорошей темы, которая могла бы объяснить мои вопросы так, чтобы я мог понять.

MSDN как обычно выглядит очень страшно и ни одной строки там не видно (Folks, kindly excuse who are into high level development, I strongly feel that any code or article should reach the mind of anyone who see it, hence like many others say, MSDN is not of use).

Интервьюер сказал:

У него есть 5 методов, и он с удовольствием реализует их непосредственно в классе, но если вам нужен класс или интерфейс Abstract, какой из них вы выберете и почему? Я ответил ему на все материалы, которые я прочитал в различных блогах, говоря о преимуществах и недостатках как абстрактного класса, так и интерфейса, но он не убежден, он пытается понять «Почему интерфейс»? в общем. & quot; Зачем нужен абстрактный класс & quot; в общем, даже если я могу реализовать одни и те же методы только один раз и не буду менять это.

Я не вижу, где в сети, я мог бы получить статью, которая объяснит мне четко об интерфейсах и его функционировании. Я один из тех многих программистов, которые все еще не знают об интерфейсах (я знаю теоретические и методы, которые я использовал), но не удовлетворены тем, что я понял это ясно.

Ответы на вопрос(14)

Ваш ответ на вопрос