5.5C#引用类型之类(Class)

1.类声明

class 类名<类型参数> : 基类名 {
}

2.类成员

类的成员为 静态成员 或 实例成员 。静态成员属于类,而实例成员则属于对象(类实例)。

成员说明
常量与类相关联的常量值
字段与类关联的变量
方法类可执行的操作
属性与读取和写入类的已命名属性相关联的操作
索引器与将类实例编入索引(像处理数组一样)相关联的操作
事件类可以生成的通知
运算符类支持的转换和表达式运算符
构造函数初始化类实例或类本身所需的操作
析构函数永久放弃类实例前要执行的操作
类型类声明的嵌套类型

3.创建对象

类型 标识符 = new 类型(实参);

4.this

this 关键字指向当前实例。

5.继承

类支持单继承,即一个类只可以从一个父类继承。

继承意味着类隐式包含其基类的所有成员(实例和静态构造函数除外)和基类的析构函数。

6.抽象类

abstract修饰符用于指示某个类不完整,并且它将仅用作一个基类。 抽象类与非抽象类在以下方面有所不同:

如果非抽象类是从抽象类派生的,则非抽象类必须包含所有继承的抽象成员的实际实现,从而重写这些抽象成员。

abstract class A
{
    public abstract void F();
}

abstract class B: A
{
    public void G() {}
}

class C: B
{
    public override void F() {
        // actual implementation of F
    }
}

抽象类 A 包含抽象方法 F 。类 B 包含了方法 G ,但由于它不提供 F 的实现,因此 B 还必须声明为抽象类。类 C 将重写 F 并提供实际实现。 由于 C 中没有抽象成员,因此  C  为非抽象类。

7.密封类

sealed修饰符用于阻止从此类派生,所以密封类不能同时也是抽象类。如果将密封类指定为其他类的基类,则会发生编译时错误。

sealed修饰符主要用于防止意外派生,但它还支持某些运行时优化。 特别是,由于知道密封类绝不会有任何派生类,因此可以将密封类实例上的虚函数成员调用转换为非虚拟调用。

8.静态类

static修饰符用于声明为 静态类 。 静态类不能被实例化或继承,所以不能用作类型并且只能包含静态成员。 

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/back/csharp/7867.html

发表评论

登录后才能评论