Как частично реализовать контракт в абстрактном базовом классе?

У меня есть интерфейс следующим образом

 public interface IX
    {
        void MethodA();
        void MethodB();
    }

У меня есть два контракта метода в интерфейсе MethodA и MethodB. Я определю набор классов, которые реализуют вышеупомянутый интерфейс. Из этих двух методов MethodA характерен для всех типов, которые реализуют интерфейс. Я могу определить абстрактный класс следующим образом

public abstract class XBase:IX
    {
        public void MethodA()
        { 
            // Common behaviour implementation
        }

        public abstract void MethodB();
    }

И наследуйте этот класс ко всем типам, которые должны реализовать вышеупомянутый интерфейс.Работает.

Но здесь в абстрактном классе я добавляю, что 'общедоступный краткий обзор освобождает MethodB ()';. это похоже на повторение контракта MethodB.

Почему C# не разрешает частичную интерфейсную реализацию, если класс абстрактен?. Вышеупомянутый интерфейс имеет только два метода. предположите, что один интерфейс имеет 10 методов, и 5 общая функциональность, и 5 не, мы вынуждены добавить 5 методик, которые не являются общепринятыми в абстрактном классе?

5
задан RAM 22 July 2010 в 18:39
поделиться