C#学习笔记——(七) 一、封装 二、继承 三、多态 1、静态多态性 2、动态多态性 1>抽象类 2>虚方法 四、小结 一、封装 封装被定义为“把一个或多个项目封闭在一个物理的或者逻辑的包中”。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问; 抽象和封装是面向对象程序设计的相关特性。抽象允许相关信息可视化,封装则使开发者实现所需级别的抽象; C# 封装根据具体的需要,设置使用者的访问权限,并通过访问修饰符来实现,一个访问修饰符定义了一个类成员的范围和可见性; C#支持的访问修饰符: 注记:A:父类 ~ B:儿子 ~ C:妻子 ~ D:私生子(不在家) public:所有对象都可以访问;(地球人都知道) private:对象本身在对象内部可以访问;(隐私,只有A自己知道) protected:只有该类对象及其子类对象可以访问;(A、B、D都知道,妻子C不知道) internal:同一个程序集的对象可以访问;(A、B、C知道,私生子D不知道) protected internal:访问限于当前程序集或派生自包含类的类型。(A、B、C、D都知道,其他人不知道) 二、继承 继承类派生了基类(父类、超类)的 public 和 protected 特性和行为,并且能够任意添加和修改子类的特性和行为 通过在派生类(子类)名称后加冒号(:),冒号后为基类(父类)名称来实现继承 派生类能够调用基类的构造器(构造函数),调用形式是在派生类参数列表后添加一个冒号并通过带有关键字 base 来调用基类构造器 语法: 访问级别 ~~ class ~~ 派生类名:基类名 { ~~~~~ 类成员… } class People { /// <summary> /// 姓名 /// </summary> public string Name { get; set; } //has a private int top; public People(int top) { this.top=top; } //仅仅本"家族"使用 protected int a; } class Teacher:People // is a { /// <summary> /// 工资 /// </summary> public int Salary