У меня есть простой вопрос С# (так я считаю). Я новичок в этом языке, и у меня возникла проблема с интерфейсами и классами, которые их реализуют. Проблема заключается в
У меня есть интерфейс iA
interface iA
{
bool method1
bool method2
bool method3
}
и 3 класса, которые реализуют интерфейс: class B
, C
и D
class B : iA
{
public bool method1
public bool method2
public bool method3
}
если класс B имел другой метод, который не находится в интерфейсе, скажем method4()
, и у меня есть следующее:
iA element = new B();
а затем я буду использовать:
element.method4();
Я бы получил ошибку, заявив, что у меня нет method4()
, который принимает первый аргумент типа iA
.
Вопрос: могу ли я иметь объект типа интерфейса и создать экземпляр класса с тем, чтобы этот объект вызывал метод из класса, метод, который не находится в интерфейсе?
Решение, с которым я столкнулся, состояло в том, чтобы использовать абстрактный класс между интерфейсом и производными классами, но IMO, который выведет интерфейс из сферы действия. В моем дизайне я хотел бы использовать только интерфейс и производные классы.