C#中修饰符用法“virtual(虚拟函数)、override(函数复写)、static(静态函数)、abstract(抽象函数)、sealed(密封函数)”

来源:互联网 发布:软件聊天 编辑:程序博客网 时间:2024/05/17 06:05

1、virtual用于修饰方法、属性、索引器或者事件声明,并使它们可以在派生类中被重写。virtual不能与static、abstract、private或者override修饰符一起使用。

声明为virtual的方法被重写时,派生类中可以使用base关键字访问父类中的publid,protected成员。语法:base.member

但base关键字不能跳过类层次结构中的多个层次,子类不能访问祖父类的成员。base.base.member是非法的

2、函数复写override也被称为覆盖或重写override要扩展或者修改继承的方法、属性、索引器或事件的抽象实现或者虚拟实现,必须使用override修饰符。不能重写非虚方法或静态方法。 重写的基方法必须是 virtualabstract 或 override 的。

3、static使用它声明属于类型本身而不是属于特定的对象的静态成员。static修饰符可以用于类、方法、属性、运算符、事件和构造函数,但不能用于索引器、析构函数或类以外的类型。

下面的类声明为 static,并且只包含 static 方法:

static class CompanyEmployee
{
public static void DoSomething() { /*...*/ }
public static void DoSomethingElse() { /*...*/ }
}

常数或者类型声明隐式地是静态成员。

不能通过实例引用静态成员。 然而,可以通过类型名称引用它。 例如,请考虑以下类:

复制代码
public class MyBaseC
{
public struct MyStruct
{
public static int x = 100;
}
}
复制代码

若要引用静态成员 x,请使用完全限定名 MyBaseC.MyStruct.x,除非可从相同范围访问成员:

Console.WriteLine(MyBaseC.MyStruct.x);

尽管类的实例包含该类所有实例字段的单独副本,但每个静态字段只有一个副本。

不可以使用 this 来引用静态方法或属性访问器。

如果对类应用 static 关键字,则该类的所有成员都必须是静态的。

类和静态类可以有静态构造函数。 静态构造函数在程序开始和类实例化之间的某个时刻调用。

4、abstract 修饰符指示所修饰的内容缺少实现或未完全实现。 abstract 修饰符可用于类、方法、属性、索引器和事件。 在类声明中使用 abstract 修饰符以指示某个类只能是其他类的基类。 标记为抽象或包含在抽象类中的成员必须通过从抽象类派生的类来实现。

5、所谓函数重载是指同一个函数名可以对应着多个函数的实现。每种实现对应着一个函数体,这些函数的名字相同,但是函数的参数的类型不同。这就是函数重载的概念。函数重载在类和对象的应用尤其重要。




原创粉丝点击