Nov*_*Net 8 c# abstract-class private public access-modifiers
内部公开的抽象方法和c#中的虚拟方法吗?
默认情况下,所有方法都是私有的,如果抽象方法是私有的,则派生类将无法使用它,从而产生错误 "virtual or abstract members cannot be private"
And*_*are 12
我认为你提出的问题与大多数人的想法不同(换句话说,你似乎明白了什么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();
}
Run Code Online (Sandbox Code Playgroud)
编译器阻止您声明无用的方法,因为私有抽象成员不能在派生类中使用,并且对声明类没有实现(因此没有用).
重要的是要注意编译器应用于抽象成员的默认访问修饰符(如果您没有自己指定)仍然private
就像该方法不是抽象的那样.
摘要只是一种表达方式:“我在这里,但还没有人告诉我我要做什么。” 由于没有人实施该成员,因此必须有人这样做。为此,您必须继承该类,并覆盖该成员。
为了能够覆盖某些东西,它必须被声明为abstract
or virtual
,并且必须至少可以被继承者访问,即必须被标记为protected
, internal
or public
。
归档时间: |
|
查看次数: |
7755 次 |
最近记录: |