- 类用class进行声明,可以包含属性、方法、构造函数、析构函数等等。
- 使用 static 关键字把类成员定义为静态的。当我们声明一个类成员为静态时,意味着无论有多少个类的对象被创建,只会有一个该静态成员的副本。关键字 static 意味着类中只有一个该成员的实例。静态变量用于定义常量,因为它们的值可以通过直接调用类而不需要创建类的实例来获取。静态变量可在成员函数或类的定义外部进行初始化。你也可以在类的定义内部初始化静态变量。
C# 继承
继承是面向对象设计的重要概念之一,继承允许我们根据一个类来定义另一个类,这使得创建和维护应用程序变得更容易。
如:
//基类
class Base
{
public int name;
public int age;
}
class Student:Base
{
public int core;
}
上列中Student中也就有的name变量,C#不支持多重继承,但是可以通过接口(Interface)来实现多重继承。
- 访问级别:protected基类和派生类可访问,private仅基类可以访问,public基类和派生类都可以访问
- 继承行为:基类的成员可以是虚拟的,由继承它的类重写
C# 多态
多态性意味着多重形式。多态性往往表现为一个接口,多个功能。多态性可以是静态的或动态的。
-
在静态多态性中,函数的响应是在编译时发生的:
函数重载
运算符重载 -
在动态多态性中,函数的响应是在运行时发生的。
C# 允许您使用关键字 abstract 创建抽象类,用于提供接口的部分类的实现。抽象类包含抽象方法,抽象方法可被派生类实现。派生类具有更专业的功能。 -
不能创建抽象类的实例
-
您不能在一个抽象类外部声明一个抽象方法
-
通过在类定义前面放置关键字 sealed,可以将类声明为密封类。当一个类被声明为 sealed 时,它不能被继承。抽象类不能被声明为 sealed。
-
当有一个定义在类中的函数需要在继承类中实现时,可以使用虚方法。虚方法是使用关键字 virtual 声明的。虚方法可以在不同的继承类中有不同的实现。对虚方法的调用是在运行时发生的。
动态多态性是通过 抽象类 和 虚方法 实现的。
常用关键字
- virtual——方法可以重写
- abstract——方法必须在非抽象的派生类中重写(只用于抽象类中)
- override——方法重写了一个基类方法(如果方法被重写,就必须使用该光健字)
- extern——方法定义放在其他地方
- internal——只要是在同一个程序集的中的其他类都可以访问
- abstract ——可以用于类、方法、属性、事件和索引指示器(indexer),表示其为抽象成员abstract 不可以和 static 、virtual 一起使用声明为 abstract 成员可以不包括实现代码,但只要类中还有未实现的抽象成员(即抽象类),那么它的对象就不能被实例化,通常用于强制继承类必须实现某一成员
- sealed——可阻止其他类继承自该类。用于方法和属性时,表示该方法或属性不能再被重写,必须和 override 关键字一起使用,因为使用 sealed 修饰符的方法或属性必须是基类中的虚成员,所以也不能用于修饰基类的方法和属性