继承与接口设计.ppt

  1. 1、本文档共77页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章继承和接口设计 1继承 72多态性 73抽象类 4接口 75接口在集合排序中的应用 7.6泛型编程 7.1继承 711基类和派生类 个类从另一个类派生出来时,称之为派生类或子类 被派生的类称为基类或父类 派生类从基类那里继承特性,派生类也可以作为其他 类的基类,从一个基类派生出来的多层类形成了类的层次 结构。 ()C类继承自A类和B类 Class C A B A B 二)B类和C类都继承自A类 Class b: A Class C: A C (三)B类继承自A类,C类继承自B类 Class b: A A Class C: B B C using system name space les Grandpapa i class Grandpapa protected string house=“房子”;} I Father class Father: Grandpapa protected string car=“车子”;} class Son: Father Son protected tring wife=“妻子”; oublic void ShowRiches() Console. Writeline(“我的财产有:爷爷的{0},父亲的{1},我的{2} house, car, wife):I class Program ipublic static void Main(string[ args [son me=new Son() me. ShowRiches():) C#中的继承具有以下特点: C#中只允许单继承,即一个派生类只能有一个基类 √C#中继承是可传递的,如果C从B派生,B从A派生,那么C不仅继承B 的成员,还继承A的成员 C#中派生类可添加新成员,但不能删除基类的成员。 √C#中派生类不能继承基类的构造函数和析构函数,但能继承基类的属 性 √C#中派生类可隐藏基类的同名成员,如果在派生类可以隐藏了基类的 同名成员,基类该成员在派生类中就不能被直接访问,只能通过“base 基类方法名”来访问 二、派生类的声明 派生类的声明格式如下: 类修饰符] class派生类:基类; C#中派生类可以从它的基类中继承字段、属性、方法 事件、索引器等 实际上除了构造函数和析构函数,派生类隐式地继承了 基类的所有成员 class a i private int n; ∥有字段 protected int n;∥保护的字段 public void afun0∥公有方法 ∥方法的代码 从中看出aunO方法在B类 class b: A 中不用重写,因为B类继 i private int x; ∥有字段 承了A类,所以可以不用 public void bfun0∥公有方法 重写A类中的aunO方法, 就可以被B类调用 ∥方法的代码 在主函数中包含以下代码: Bb= new BO;∥定义对象并实例化 .afunO: 按次序调用构造函数和析构函数 1.调用默认构造函数的次序 如果类是从一个基类派生出来的,那么在调用这个派 生类的默认构造函数之前会调用基类的默认构造函数 调用的次序将从最远的基类开始。 class A∥基类 public A(){ Console.. Writeline(调用类A的构造函数)} class b: A ∥从A派生类B public B(){ Console.. Writeline(调用类B的构造函数);} class c: B ∥从B派生类C public c(){ Console. WriteLine(调用类C的构造函数);} 在主函数中执行以下语句 Cb=newC();∥定义对象并实例化 运行结果如下 调用类A的构造函数 B 调用类B的构造函数 调用类C的构造函数

文档评论(0)

kefuxing + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档