C#程序设计实用教程 李正夫 第05章新.pptVIP

C#程序设计实用教程 李正夫 第05章新.ppt

  1. 1、本文档共60页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * public class teacher: person { public override void printInfo()//使用new覆盖了父类的同名方法 { Console.WriteLine(子类teacher的方法-printInfo() + name); Console.WriteLine(子类teacher的方法-printInfo() + age); } public override string ShowMessage(){}//错!!不可以使用override重写了父类的非虚拟同名方 } * * class Program { static void Main(string[] args) { person p1=new person(); person p2= new student(); person p3= new teacher(); student p4 = new student(); p1. printInfo(); p2. printInfo(); p3.printInfo(); p4.printInfo(); Console.WriteLine({0}, p1.ShowMessage()); Console.WriteLine({0}, p2.ShowMessage()); Console.WriteLine({0}, p3.ShowMessage()); Console.ReadLine(); } } } * * 程序运行结果如图6-4所示: * * 5.2 特殊类与接口 需要时我们创建一个基类,该类本身不提供已经实现的方法,只定义了所有子类共享的一般形式,至于实现方法的内容交给子类去填充。在这种情况下就需要一些方法来确保子类继承并实现基类中方法的必要条件,这里我们可以使用抽象类。 * * 5.2.1抽象类 C#中使用关键字abstract表示一个抽象类,抽象类是指不完全可用的类,只能作为其他类的基类,该类包含抽象方法,即包含不提供实现的方法,只定义了所有子类共享的一般形式,至于实现方法的内容交给子类去填充。 抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。另外,抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,则其派生类必须覆盖它们。 * * 抽象类与继承 定义抽象类的一般形式如下所示: public abstract class A { 。。。。。 } * * 例如:如下定义了一个平面图形抽象类 public abstract class planeg { protected float x,y; public planeg(float x1,float y1)//构造函数 { x=x1; y=y1; } public abstract double Area();//抽象方法 } * * 5.2.2密封类 密封类正好与抽象类相反。抽象类型必须被继承,不能为一个抽象类型创建一个实例。相反地,密封类型不能被继承,它是具体的。密封类不能被派生类型细化,它是类层次结构中的终结节点。 sealed修饰符也可以应用在实例方法、属性、事件和索引器上,但是不能应用于静态成员。密封成员可以存在于密封或非密封类中。一个密封成员必须对虚成员或隐含虚成员进行重写,如抽象成员。但是,密封成员自己是不能被重写的,因为它是密封的。sealed修饰符必须与override修饰符结合使用。虽然密封成员不能被重写。 * * 以下代码展示了一个密封类和一个密封成员。在这个例子中,HourlyEmployee类不能被进一步地细化。此外,HourlyEmployee.Pay方法不能被重写。 public abstract class Employee { public virtual void Pay() { } public abs

文档评论(0)

时间加速器 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档