Я читал некоторую теорию кода, связанную с множественным наследованием и интерфейсами. Он сказал во всех местах, что interface is a class without implementation
.Почему «интерфейс не имеет реализации»? - C#
1) В чем заключается использование не реализованных методов/функций в интерфейсе? Поддерживает ли он несколько реализаций одного и того же метода в разных классах, которые наследуют интерфейс?
2) Большинство примеров кода, похоже, показывают методы интерфейса void
. Всегда ли интерфейсные функции/методы void
?
Вы должны попытаться найти немного, прежде чем оставлять вопрос: [здесь] (http://stackoverflow.com/questions/3844200/interfaces-in-c-sharp) –
(1) В основном, да. (2) Не обязательно; вы можете иметь непустые методы, свойства, события ... – Rawling
Возможно, немного фона: C# не имеет множественного наследования типа c. В C вы могли иметь базовый класс с некоторыми методами, 2 (или более) дочерних класса базового класса, а затем «большой» дочерний класс, наследование которого от обоих дочерних классов. Это обычно называют «проблемой алмаза». Должен ли внук вести себя как один из детей, и какой из них? java и C# пытаются избежать проблем из этого созвездия, используя «абстрактный» класс, который является интерфейсом. вы можете реализовать некоторые интерфейсы, но не можете наследовать более одного класса. – Offler