第8章继承与多态.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章继承与多态资料

第8章 继承与多态 8.1 案例分析:交通工具演变规律 8.1 案例分析:交通工具演变规律 我们要研究的三种类型车的关系 8.2 派生类 我们在第二篇5.2.3小节中曾经遇见过的代码: using System; // 引用系统命名空间 public partial class MyForm1 : Form { …… } 就是派生类的定义,表示从Form(窗体)类产生出一个新的class(类)“MyForm1”,构成我们要的窗体。 8.2 派生类 派生类通常定义语法格式为: 访问修饰符class 派生类名称:基类名称 { 类体 } “访问控制修饰符”可以是public,protected和private等。通常使用public以保证类的开放性,并且public可以省略,因为类定义的访问控制默认public。 “基类名称”表示所继承的类。 8.2 派生类 【实作任务】建立以客车类作为基类的出租车类 class Taxis : Passtrain { private float price; //声明每公里价格字段 public float Price //声明每公里价格属性 { get { return price; } set { price = value; } } //根据公里数计算应付金额的方法 public float Money(float dis) { return dis * Price; } } 8.2 派生类 对于Taxis类中的成员,以及每个成员的访问权限,参见表 : 8.2 派生类 派生类的构造函数默认会调用基类的无参构造函数,若要显示调用父类的构造函数,则需要在构造函数名后,函数体前进行调用,但名字应该变成base class Taxis : Passtrain { ……. //声明公有含参数的构造方法 //参数we,p,wh,sp,pri分别传递车重,载客量,车轮,车牌号,每公里价格 public Taxis (int we ,int p,int wh, string sp,float pri):base(we,p,wh,sp) { Console.WriteLine(出租车类的有参构造函数被调用); price = pri; } } 8.3 成员隐藏 成员隐藏是什么?为什么要学? 类的继承中,派生类继承了基类的所有成员,但在实际编程中,有时我们需要子类拥有和父类同名、参数一致但完成功能不同的方法,从而屏蔽掉父类的方法,我们称这种情况为成员隐藏。成员隐藏使用关键字new。 8.3 成员隐藏 在派生类中用new关键字声明与基类同名的方法,格式如下 : 访问修饰符 new 类型 成员名; 此格式中的成员可以是字段、属性、方法等,当然,若为方法,则相应的也应该有方法体。 比如若基类中有一方法:public void F() {…} 则在派生类中重写该方法应该为:public new void F() {…}。 8.3 成员隐藏 【实作任务】使用 new 隐藏基类Showinfo方法 class Taxis: Passtrain { …… public new void Showinfo( ) { System.Console.WriteLine (我是出租车); System.Console.WriteLine (我的车牌号是:+ plate); System.Console.WriteLine (我的重量是:+ Weight); System.Console.WriteLine (我的载客量是:+ Passengers); System.Console.WriteLine (每公里的价格是:+ Price); } } 8.3 成员隐藏 想一想 若现在我们在程序中编制如下语句: Taxis ts = new Taxis( ); ts.plate = “234567”; ts.Price = 1.4F; ts.Showinfo( ); 程序的输出是什么? 8.4 虚拟方法与方法重写 引:在8.2小节中,出租车类Taxis类继承于客车类Passtrain,拥有了客车的成员,若我们在程序中编制如下语句: Taxis ts = new Taxis( ); ts.plate = “234567”; ts.

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档