Как потребовать реализацию абстрактного класса в C#?
Вы не можете создать экземпляр абстрактного класса - и, следовательно, не можете использовать его в большинстве случаев. За исключением как переменная / аргумент / универсальный c аргумент типа. Вам нужно создать конкретный (неабстрактный) класс, который наследуется от него. Вы можете использовать только абстрактный класс в качестве типа переменной / аргумента. Чтобы гарантировать, что там могут использоваться только те вещи, которые наследуются от него.
По сути, я хочу убедиться, что используемый мной объект является производным от абстрактного класса и реализует все необходимые мне методы. использовать.
Затем используйте абстрактный класс в качестве аргумента типа. Это означает, что в этом месте могут использоваться только экземпляры абстрактного класса (из которых не может быть экземпляром) или экземпляры классов, которые наследуют его (что кто-то еще пишет).
Обратите внимание, что абстрактные классы и интерфейсы перекрываются практически во всех случаях. Существует множество небольших различий, но я не думаю, что они имеют значение. Единственное большое различие, которое я вижу, это исключительность:
- класс может реализовать столько интерфейсов, сколько он хочет.
- Вы можете наследовать только от одного абстрактного класса. это означает, что это для основной, исключительной цели. Таким образом вы предотвращаете некоторые глупые идеи, например, кто-то пытается создать Windows форму, которая также является DBConnection.