В целях простоты, скажем, у меня есть «базовый» абстрактный класс:Как избежать реализации методов из абстрактного класса?
public abstract class BaseClass
{
public abstract void BaseMethod(object obj);
public abstract void BaseMethod();
}
Я хочу сделать 2-й и 3-й класс наследует от этого «BaseClass»:
public class Class1 : BaseClass
{
public override void BaseMethod(object obj)
{
//Some code
}
}
public class Class2 : BaseClass
{
public override void BaseMethod()
{
//Some code
}
}
В основном, Я хочу, чтобы каждый из классов реализовал один метод без реализации другого. Приведенный выше пример не работает, поскольку для каждого класса мне предлагается реализовать другой абстрактный метод.
Я знаю, что могу просто реализовать другой метод «пустой». Однако я пытаюсь избежать этого, так как я нашел следующее заявление:
абстрактные классы могут наследоваться без реализации абстрактных методов (хотя такой производный класс является абстрактным сам)
Is это утверждение неверно? Любые материалы по этой теме глубоко оценены. Благодаря!
Почему вы хотите это сделать? Какую проблему ты пытаешься решить? – NWard
«*** (хотя такой производный класс является абстрактным) ***« Попытка предотвратить выполнение дочерним классом или переопределения определенного метода базового класса - это бесполезное упражнение. Просто выходите на улицу и бить головой о тротуар, если хотите сделать себя несчастным. – Will
Эти классы были бы прекрасны, если вы сделаете их «абстрактными». Конечно, любой класс, который вытекает из них, который не является также «абстрактным», должен был бы реализовать другой метод. Может быть, вы могли бы объяснить, почему вы думаете, что вам нужно это сделать, и мы можем предложить другой подход. Возможно, вам действительно нужны два отдельных интерфейса, каждый из которых определяет эти методы. – juharr