C#第7章 继承与多态.pptVIP

  • 35
  • 0
  • 约7.23千字
  • 约 20页
  • 2020-02-05 发布于辽宁
  • 举报
毅力、思索、责任 第7章 继承与多态 7.1 概述 7.2 声明派生类 7.3 基类成员在派生类中的可见性 7.4 派生类的构造方法 7.5 改写基类对象的行为 7.6 抽象类与抽象方法 7.7 本章小结 7.1 概述 继承是一种由已有类创建新类的机制,继承允许根据一个类来定义另一个类,这使得创建和维护应用程序变得更容易。同时也有利于重用代码和节省开发时间。 已有的类被称为的基类或父类,新的类称为派生类或子类。 继承的思想实现了属于( IS-A )关系。例如,哺乳动物属于( IS-A )动物,狗属于( IS-A )哺乳动物,因此狗属于( IS-A )动物。 类的继承是有原则的。派生类继承基类的字段成员。派生类继承基类除构造方法以外的成员方法,派生类不能继承基类的构造方法。派生类可以增加成员,可以重定义从基类继承来的成员,但不能删除它们。 在初始化派生类对象时,派生类对象不仅要初始化自身新增的数据成员,而且还要初始化由基类继承来的数据成员。而且,在初始化的顺序上,则是优先初始化来自基类数据成员,然后再初始派生类自身的数据成员。 派生类虽然继承了基类成员,但对来自基类的成员的访问也不是任意的,因为基类中使用了访问修饰符指定了成员的可访问性。 7.2 声明派生类 通过在派生的类名后面追加冒号和基类名称,语法如下所示: class 派生类名 :基类名 { //类体 } C#中,派生类只允许继承一个基类,不能同时继承多个类,但可以实现多个接口。 C#不支持私有继承,因此,基类名上没有public或private限定符。 例如,定义雇员类Employee,它派生自人类Person,定义形式如: public class Employee : Person { private decimal salary; public decimal Salary { get { return salary; } set { if (value = 0) salary = value; else salary = 0; } } //… } 7.2 声明派生类 通过在派生的类名后面追加冒号和基类名称,语法如下所示: class 派生类名 :基类名 { //类体 } 例如,定义雇员类Employee,它派生自人类Person,定义形式如: public class Employee : Person { private decimal salary; public decimal Salary { get { return salary; } set { if (value = 0) salary = value; else salary = 0; } } //… } C#中,派生类只允许继承一个基类,不能同时继承多个类,但可以实现多个接口。 C#不支持私有继承,因此,基类名上没有public或private限定符。 7.3 基类成员在派生类中的可见性 4 class A 5 { 6 private double pridata = 7; 7 protected double prodata = 8; 8 protected double fun1() 9 { 10 return pridata; 11 } 12 } 13 class B : A //B类中不能直接访问pridata成员 14 { 15 } 16 class C : B //C类中不能直接访问pridata成员 17 { 18 A a = new A(); 19 public double fun2() 20 { 21 //可访问基类中的protected成员 22 prodata = 9 + fun1(); 23 return prodata; 24 } 25 } 26 class program 27 { 28

文档评论(0)

1亿VIP精品文档

相关文档