深入.NET平台和C#编程## 第六章 初始继承和多态## 知识点总结
继承
- 在C#中,一个类可以继承另一个类。
- 衍生的类(子类)继承父类的方法和数据成员。
语法:
class 子类:父类{……} - 子类继承父类,父类派生子类。
- 父类又叫基类,子类又叫派生类。
继承是面向对象的一个重要特性。
继承指出两个类符合“A是B”的关系。
继承的实际应用。
1.SE类和PM类都继承Employee父类。
2.子类构造函数设置公共属性和特有属性。
3.子类特有的SayHi()方法。
4.实例化对象调用SayHi()。
base关键字和protected修饰符
三种访问修饰符对类成员访问限制强度:private>protected>public
1.子类构造函数
-
隐式调用父类构造函数。
-
显示调用父类构造函数。
base关键字。不要在子类的构造函数后添加“:base(参数列表)”。
易错误区:
- base调用父类构造函数参数带数据类型。
- base调用处类构造函数参数名称不一致。
- 没有指名调用父类的哪一个构造函数。
继承的特性
- 继承的传递性。
- 继承的单根性。
一个子类不能同时继承多个父类。
特殊关键字sealed,用它修饰的类不能被继承,我们称这种类为密封类,常用的string类就是密封类。
is a 的应用
子类所关注与子类相关的行为和状态。
继承的价值
1.模拟现实世界的关系。
2.继承实现了代码的重用。
3.程序结构清晰。
多态
不同对象对于同一个方法实现不同行为。
1.使用virtual关键字修饰的方法称为虚方法,虚方法有方法体。
访问修饰符 virtual 返回类型 方法名(){//方法体}
2.使用override关键字修饰的方法称为重写,虚方法可以被重写。
访问修饰符 override 返回类型 方法名(){//方法体}
方法重载也是实现多态的一种方式,只不过重载的方法都是在同一个类中。