Абстрактный класс C#, реализующий интерфейс
Привет Эксперты,
Читая какой-то блог, я прочитал один подход, который используется кем-то в интерфейсе и абстрактном классе, но я не совсем понимаю, что, пожалуйста, помогите мне это выяснить.
1) Каковы преимущества наследования интерфейса в абстрактном классе?когда мы идем на такой подход?Является ли это хорошей практикой? Действительно ли это дубликат кода в обоих местах?
е.г
public interface IService { void Add(); void Mul(); } //First Case public abstract class ServiceOne : IService { public abstract void Add(); public abstract void Mul(); } //Second Case public abstract class ServiceTwo : IService { public void Add(){} public void Mul(){} } public class S1 : ServiceOne { public override void Add(){} public override void Mul() {} } public class S2 : ServiceTwo { }
Таким образом, в приведенном выше примере у нас есть интерфейс IService и два метода add() и mul().И тот же метод наследуется в (случае 1) абстрактном классе Serviceone и снова его абстрактный метод здесь в (случае 2) наследуется в абстрактном классе ServiceTwo, но обеспечивает реализацию метода интерфейса.
Спасибо
Динеш
Что я уже пробовал:
What are basic benefits of doing that duplication of code in interface and abstract class.
[no name]
Дубликата нет. Интерфейсы не содержат кода. Интерфейс-это контракт, а не реализация.
Er. Dinesh Sharma
Когда нам нужен этот подход, тот же метод в интерфейсе и тот же абстрактный класс, который его унаследовал.