C#图解 (类和继承)
2021-04-21 23:27
所有的类都派生自object类
除了特殊的类object ,所有的类都是派生类,即使它们没有基类的规格说明.类object是唯一的非派生类,因为它是继承层次结构的基础.
一个类声明的基类规格说明只能有一个单独的类.这里称为单继承
虽然类只能继承一个基类,但继承的层次没有限制.也就是说,作为基类的类可以派生来自另一个类,而它又派生来自另一个类,一直下去直到object
派生类的方法和基类的方法有相同的签名和返回类型
基类使用virtual标注
派生类的方法使用override标注
默认情况下,在对象被构造时候,基类的无参构造函数被调用,但构造函数可以被重载,所以基类可能有一个或者一个以上的构造函数,如果希望派生类使用一个指定的基本构造函数而不是无参构造函数,必须在构造函数初始化语句使用它
类的访问修饰符
类可以被其他的类看到并访问,类的可访问性有两个级别:public和internal
标记为public可以被系统任何程序集的代码访问.要使一个类对其他程序集可见,使用public访问修饰符
标记为internal的类只能被它所在程序集内看到
成员的访问修饰符
有五个访问修饰符: 公有的 私有的 受保护的 内部的 受保护内部的
必须对每个成员指定成员访问级别.如果不指定某个成员的访问级别那么他的隐式的访问级别是private
public访问级别限制性最少 所有的类,包括程序集内部的类和外部的类都可以自由地访问成员
protected访问级别如同private级别访问级别,除了一点,它允许派生类该类的类访问该成员
抽象成员
抽象成员是被设计用来被覆盖函数成员,抽象成员有以下特征
它被用abstract修饰符标记
他没有实现代码块.抽象成员的代码块被分号代替
抽象类
抽象类只能被其他类的基类,抽象类就是被设计来被继承的;
不能创建抽象类的实例
抽象类使用abstract修饰说明
密封类
密封类只能被做独立的类,它不能被用作基类
密封类使用sealed修饰符标注
静态类
静态类是一种类,在那里所有成员都是静态.静态类用于分组不受实例数据影响的数据和函数,静态类的一个普通的用途可能就是创建一个包含一组数学方法的数据库;
类本身必须标记为static
类的所有成员必须是静态
类可以有一个静态构造函数,但没有实例构造函数,不能创建该类的实例
不能继承静态类它们是密封的