Что такое интерфейс в C# и с чем его едят. Если можно, на русском. ))
Я вот так понимаю. Значит, если класс должен по-любому реализовать методы интерфейса, то получается, все классы, что наследуют интерфейс, должны реализовать его методы?
Что такое интерфейс в C# и с чем его едят. Если можно, на русском. ))
Я вот так понимаю. Значит, если класс должен по-любому реализовать методы интерфейса, то получается, все классы, что наследуют интерфейс, должны реализовать его методы?
Интерфейс - это в каком-то смысле договор. В случае, если вы наследуете интерфейс, вы заключаете договор, по которому обязаны реализовать все методы этого интерфейса в своем классе. Если ваш класс не реализует какой-то метод, значит, он автоматически является абстрактным классом, и вы по нему не имеете права создавать объект, но можете этот класс наследовать в другом классе и реализовать метод уже в нем.
Если ваш абстрактный класс уже реализовал какой-то метод интерфейса, то потомкам этого абстрактного класса эти методы реализовывать не обязательно.
Интерфейсы часто используются в различных библиотеках, где методы ждут определенный объект, который в обязательном порядке должен реализовать метод от какого-то интерфейса.
Здесь и здесь есть хорошие статьи по этому поводу.
К вашему вопросу. Все методы в интерфейсе являются абстрактными, и любой класс (не абстрактный, спасибо gympi), наследующий тот или иной интерфейс, обязан реализовывать все его методы.