Member 12650701 Ответов: 1

Про абстрактный класс и наследование в C#


у меня есть абстрактный класс say employee, и он содержит несколько методов, некоторые из них абстрактны, а некоторые не абстрактны, и теперь мой дочерний класс say manager наследует этот абстрактный класс, но реализует только несколько абстрактных методов, а не все .нужно ли объявлять этот дочерний класс абстрактным или нет? что делать, если дочерний класс хочет реализовать только несколько абстрактных методов родительского класса? пожалуйста, ответьте подробно .

Что я уже пробовал:

я просто подумал об этом, поэтому выложил его.#

Philippe Mori

Это очень легко попробовать. Сделайте это и проверьте, жалуется ли компилятор или нет.

BillWoodruff

Если вы не начнете экспериментировать на практике, а также читать хорошую книгу или онлайновую документацию, вы не сможете глубоко изучить C#.

1 Ответов

Рейтинг:
1

0x01AA

А почему бы вам не сделать небольшой тестовый класс и не посмотреть, что получится?

Что-то вроде этого, сосредоточьтесь на комментируемом методе:

public abstract class BaseAbstract
{
    public BaseAbstract() { }
    public abstract void Method();
}

public class Derived : BaseAbstract
{
    public Derived() { }

    // Try to compile with commentet "Method" and uncommented.
    /*
    public override void Method()
    {
    }
    */
}


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

Некоторые легко читаемые и очень короткие сведения вы найдете здесь: 10.5.6 абстрактные методы (с#)[^]
Надеюсь, это поможет.