Подтвердить что ты не робот

Могут ли абстрактные классы реализовать в С#?

Компилятор пока что не возражает против этого, но я просто хотел дважды проверить, не настроен ли я на неудачу каким-либо образом, реализовав определенные методы в моем абстрактном классе.

4b9b3361

Ответ 1

Абстрактный класс обычно имеет один или несколько абстрактных методов. Так что да, он может иметь некоторый метод. Цель состоит в том, чтобы заставить пользователя реализовать эти методы для работы объекта. Иногда абстрактные классы используются для обеспечения "базовой" реализации некоторых интерфейсов, оставляя конечного пользователя указывать только ключевые методы. Вы также можете иметь абстрактный класс без абстрактного метода: в этом случае вы утверждаете, что вы должны использовать этот класс для его использования.

Ответ 2

Общепринято иметь некоторую реализацию в абстрактных классах.

Если реализации вообще нет, рассмотрите возможность использования интерфейса вместо абстрактного класса.

Ответ 3

Да. abstract класс не может быть создан (вам нужно создать экземпляр класса, который наследуется от вашего абстрактного класса), но он может содержать реализации.

Ответ 4

Совершенно прекрасно реализовать некоторые методы и оставить другие абстрактные.

Если все методы должны быть абстрактными, вы можете также использовать для этого интерфейс.

Ответ 5

он прав и разрешен, abstract class имеет хотя бы один элемент (метод/свойство), который не реализован, поэтому он не может быть создан.

an interface также называется pure abstract class, что означает, что он на 100% абстрактен, поэтому не позволяет указывать какую-либо реализацию.

помните, что есть много статей и мнений о том, что никогда не выводит конкретный класс из другого конкретного класса, а только из абстрактных... по крайней мере, это была тенденция на С++ до нескольких лет назад, затем я перешел к сторона С#, начала работать больше и не успевала читать эти хорошие статьи...:)