Компилятор пока что не возражает против этого, но я просто хотел дважды проверить, не настроен ли я на неудачу каким-либо образом, реализовав определенные методы в моем абстрактном классе.
Могут ли абстрактные классы реализовать в С#?
Ответ 1
Абстрактный класс обычно имеет один или несколько абстрактных методов. Так что да, он может иметь некоторый метод. Цель состоит в том, чтобы заставить пользователя реализовать эти методы для работы объекта. Иногда абстрактные классы используются для обеспечения "базовой" реализации некоторых интерфейсов, оставляя конечного пользователя указывать только ключевые методы. Вы также можете иметь абстрактный класс без абстрактного метода: в этом случае вы утверждаете, что вы должны использовать этот класс для его использования.
Ответ 2
Общепринято иметь некоторую реализацию в абстрактных классах.
Если реализации вообще нет, рассмотрите возможность использования интерфейса вместо абстрактного класса.
Ответ 3
Да. abstract
класс не может быть создан (вам нужно создать экземпляр класса, который наследуется от вашего абстрактного класса), но он может содержать реализации.
Ответ 4
Совершенно прекрасно реализовать некоторые методы и оставить другие абстрактные.
Если все методы должны быть абстрактными, вы можете также использовать для этого интерфейс.
Ответ 5
он прав и разрешен, abstract class
имеет хотя бы один элемент (метод/свойство), который не реализован, поэтому он не может быть создан.
an interface
также называется pure abstract class
, что означает, что он на 100% абстрактен, поэтому не позволяет указывать какую-либо реализацию.
помните, что есть много статей и мнений о том, что никогда не выводит конкретный класс из другого конкретного класса, а только из абстрактных... по крайней мере, это была тенденция на С++ до нескольких лет назад, затем я перешел к сторона С#, начала работать больше и не успевала читать эти хорошие статьи...:)