Рассмотрим следующее определение класса.
public abstract class FooBase : IBar
{
public int Value {get; set;}
public string ToString()
{
//Return a string.
}
}
public interface IBar
{
int Value;
string ToString();
}
FooBase
- это базовый класс, обеспечивающий реализацию интерфейса IBar
.
Как абстрактный класс, FooBase
не может быть непосредственно созданным. Таким образом, другой класс должен быть производным от этого класса, чтобы он был полезен.
Теперь рассмотрим сценарий, в котором вам нужен объект типа FooBase
, который реализует интерфейс IBar
, однако для однократного указания c member IBar
вам нужны дочерние элементы FooBase
для его реализации, а не FooBase
.
Есть ли способ реализовать / обратиться к члену в абстрактном классе, таком как FooBase
, производный начиная с IBar
, таким образом, что любой дочерний элемент FooBase
должен реализовать один элемент из IBar
, а не полагаться на базовые реализации FooBase
?
Я предполагаю, что нет потому что компилятор говорит, что объявление значения типа public abstract int Value
недопустимо, но я решил, что стоит спросить и проверить. Но, может быть, я ошибаюсь, и если так, есть ли правильный способ заставить дочернюю реализацию моего базового класса реализовать член из родительского интерфейса на моей базе?