Я думаю, что вы задаете другой вопрос, чем думает большинство людей (другими словами, кажется, вы понимаете, что означает abstract
).
Вы не можете объявить закрытый абстрактный метод - компилятор выдает ошибку. Оба эти класса не будут компилироваться:
class Foo
{
private abstract void Bar();
}
class Baz
{
// This one is implicitly private - just like any other
// method declared without an access modifier
abstract void Bah();
}
Компилятор запрещает вам объявлять бесполезный метод, поскольку закрытый абстрактный член не может использоваться в производном классе и не имеет реализации (и, следовательно, бесполезной) для декларирующего класса.
Важно отметить, что модификатор доступа по умолчанию, примененный компилятором к абстрактному члену (если вы не указали его самостоятельно), по-прежнему private
, как если бы метод не был абстрактным.