62.2类的基本规范 如果类声明时指定了基类的类型,那么就表 示指定了当前声明的类的直接基类。但是如 果类在声明时没有指定基类,或者基类仅列 出了一些接口类型,那么当前声明的类的基 类假定为 object 新派生的类必须可以访问其直接基类 程序员在定义新类时不能以下列类为基类: System Array、 System. Delegate、 System Enum System Value Type 返回目录
6 6.2.2 类的基本规范 ❖ 如果类声明时指定了基类的类型,那么就表 示指定了当前声明的类的直接基类。但是如 果类在声明时没有指定基类,或者基类仅列 出了一些接口类型,那么当前声明的类的基 类假定为object。 ❖ 新派生的类必须可以访问其直接基类。 ❖ 程序员在定义新类时不能以下列类为基类: System.Array 、System.Delegate 、 System.Enum 、System.ValueType 返回目录
63.1类继承 创建派生类要在派生类的名字后面加上冒号 “:”,后面再跟上基类的名字 派生类继承了基类的所有成员,包括成员变 量和方法。派生类可以选择是否自己重新实 现基类方法,如需重新实现可以用关键字 new修饰新方法,它表示派生类故意隐藏和 替代了基类方法
7 6.3.1 类继承 ❖ 创建派生类要在派生类的名字后面加上冒号 “:”,后面再跟上基类的名字。 ❖ 派生类继承了基类的所有成员,包括成员变 量和方法。派生类可以选择是否自己重新实 现基类方法,如需重新实现可以用关键字 new修饰新方法,它表示派生类故意隐藏和 替代了基类方法
类继承有以下几点需要注意的: (1)如果一个类是从其他类派生的,那么该类也继 承其直接基类的所有成员,但基类的构造函数和 析构函数除外 (2)继承具有传递性 (3)派生类可以扩展它的基类。 (4)基类的构造函数和析构函数不能被继承,但是 可%继承的其他成员的存取权限可能会影响到成 访问。 (5)派生类可以隐藏继承成员的实现 (6)对一个派生类实例的引用可以当成是对该类的 基类实例的引用 (7)类可以声明虚方法、虚属性和虚下标指示器, 并且派生类可以重载这些函数成员的实现,这样 就便类的多态性得以实现
8 ❖ 类继承有以下几点需要注意的: (1)如果一个类是从其他类派生的,那么该类也继 承其直接基类的所有成员,但基类的构造函数和 析构函数除外。 (2)继承具有传递性。 (3)派生类可以扩展它的基类。 (4)基类的构造函数和析构函数不能被继承,但是 可以继承的其他成员的存取权限可能会影响到成 员在类中的访问。 (5)派生类可以隐藏继承成员的实现。 (6)对一个派生类实例的引用可以当成是对该类的 基类实例的引用。 (7)类可以声明虚方法、虚属性和虚下标指示器, 并且派生类可以重载这些函数成员的实现,这样 就使类的多态性得以实现
6.3.2neW修饰符 令派生类可以声明特定的成员类隐藏基类的相 应成员,这种隐藏不是一种错误,但是编译 器在编译阶段会给出警告。为了禁止此警告, 派生类成员的声明可以包含neW修饰符以指 出该派生成员将隐藏基类成员。 但是如果某派生类成员声明时并不是为了隐 藏基类某成员,此时再加new修饰符就会引 起编译警告
9 6.3.2 new修饰符 ❖ 派生类可以声明特定的成员类隐藏基类的相 应成员,这种隐藏不是一种错误,但是编译 器在编译阶段会给出警告。为了禁止此警告, 派生类成员的声明可以包含new修饰符以指 出该派生成员将隐藏基类成员。 ❖ 但是如果某派生类成员声明时并不是为了隐 藏基类某成员,此时再加new修饰符就会引 起编译警告
63.3静态成员和实例成 1.静态成员 如果字段、方法、属性、事件、运算符 或构造函数声明时指定了 static修饰符,就 等于声明了一个静态成员。另外,一个常 量或类型声明时都隐式地声明了一个静态 成员 2.实例成员 如果字段、方法、属性、事件、下标指 示器、构造函数或析构函数声明时没有指 定 static修饰符,那么此时声明的是一个实 例成员(也称为非静态成员)6
10 6.3.3 静态成员和实例成员 1.静态成员 如果字段、方法、属性、事件、运算符 或构造函数声明时指定了static修饰符,就 等于声明了一个静态成员。另外,一个常 量或类型声明时都隐式地声明了一个静态 成员。 2.实例成员 如果字段、方法、属性、事件、下标指 示器、构造函数或析构函数声明时没有指 定static修饰符,那么此时声明的是一个实 例成员(也称为非静态成员)