Member 9346617 Ответов: 2

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


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

Я могу написать свои собственные методы в каждом классе. Почему возникает необходимость реализовать тот или иной интерфейс ?

Допустим, для освобождения объектов мне нужно реализовать IDisposable interface & нужно предоставить детали реализации метода Dispose (). Вместо этого я могу написать свой собственный метод, чтобы освободить объекты. Почему я должен реализовывать IDisposable интерфейс ?

Что я уже пробовал:

Я могу писать собственные методы отдельно в каждом классе вместо реализации конкретного интерфейса.

2 Ответов

Рейтинг:
2

F-ES Sitecore

Если вы пишете класс со своим собственным методом для освобождения ресурсов;

public class MyClass
{
    public void CleanUp()
    {
    }
}


затем вы можете написать код, который использует этот объект

MyClass c = new MyClass()
c.SomeMethod();
c.CleanUp();


это здорово, но вы можете написать этот код только так, как вы знаете об очистке, другие классы не знают об этом методе. Итак, допустим, вы создаете экземпляр MyClass, и он находится в куче, в конце концов .net garbage collection будет запущен, чтобы утилизировать и избавиться от неиспользуемых объектов. Как сборщик мусора узнает, что нужно вызвать ваш метод очистки?

Интерфейс-Это гарантия того, что объект поддерживает метод или функциональность. Эта гарантия позволяет другим классам использовать ваш класс. Таким образом, реализуя IDispose, любой другой код, который должен утилизировать ваш объект, может сделать это, поскольку интерфейс гарантирует, что вы реализуете метод Dispose, так что любой код может вызвать метод Dispose вашего класса, как он знает, что он существует.


Рейтинг:
1

Kornfeld Eliyahu Peter

Короче говоря-те классы, которые реализуют интерфейс, можно использовать так, как они были однотипными (тип интерфейса), где классы, которые только одинаковы по ручной работе, не могут...

Для более полного / лучшего понимания вы должны изучить принципы ООП...
Может быть, отправная точка: Введение в концепции объектно-ориентированного программирования (ООП) и многое другое[^]