Почему класс должен реализовывать интерфейс?

1

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

Это был общий обработчик, которому нужны IReadOnlySessionState, интерфейсы IRequiresSessionState для использования сеанса.

  • 1
    Еще потому. Потому что тот, кто спроектировал эту часть фреймворка, решил, что именно так он и делает. Вот как это было разработано.
  • 0
    Потому что интерфейс - это контракт. Если вы хотите, чтобы ваш класс использовался как объект Session, он должен соблюдать этот контракт, таким образом реализуя интерфейс.
Показать ещё 2 комментария
Теги:
oop

1 ответ

1

Как сказал TomTom, потому что он был спроектирован именно так... почему он был спроектирован именно так? здесь наиболее вероятный ответ, ответ, почему интерфейсы настолько полезны.

Взято отсюда

"Интерфейс содержит определения для группы связанных функций, которые может реализовать класс или структура.

Используя интерфейсы, вы можете, например, включить поведение из нескольких источников в классе. Эта возможность важна в С#, потому что язык не поддерживает множественное наследование классов. Кроме того, вы должны использовать интерфейс, если хотите имитировать наследование для структур, потому что они не могут наследовать от другой структуры или класса ".

В вашем случае вы реализуете несколько интерфейсов.

Что касается полиморфизма...

"Базовый класс также может реализовывать элементы интерфейса с помощью виртуальных членов. В этом случае производный класс может изменять поведение интерфейса, переопределяя виртуальные члены. Дополнительные сведения о виртуальных членах см. В разделе" Полиморфизм ".

  • 0
    В моем примере универсальному обработчику нужен интерфейс, но интерфейс или метод абстрактного класса не содержат никакого алгоритма. Просто мы переопределяем это. Итак, в моем примере, где .net fw получает необходимый алгоритм пустых методов?
  • 0
    Это необходимо в отношении интерфейса / контракта ... если ваш код не вызывает метод, то метод не нуждается в реализации, только подпись будет удовлетворять интерфейсу.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню