- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C_面向对象编程(二)继承封装和多态
C#面向对象编程(二)继承、封装和多态 berry博客: 4.3 继承、封装和多态 4.3.1 继承 4.3.2 封装 4.3.3 多态 4.3.4 this和base关键字 4.3.1 类的继承 继承的意思是一个类可以建立在另一个类的基础上,可以继承另一个类的属性和方法。我们把被继承的类叫做基类,通过继承产生的类叫做派生类(也可以叫做父类和子类)。继承的概念来源与现实的生活,比如汽车、轮船、火车飞机等就是继承于交通工具这个类,而汽车类中又可以派生出新的类,比如轿车、面包车等等。 引入继承可以让我们重用以前写过的代码,新编写的代码可以在原来的基础上继承而来。 在C#中继承的方式就是定义派生类。 在C#中,所有的类都是通过直接或间接地继承Object类得到的。 1. 派生子类 定义派生类的基本形式: class 派生类名字:基类名字 { 派生类的代码; } public class Parent { public Parent( ) { ......定义一个构造函数} public void WriteItem( ) { .......定义方法 } } public class Child:Parent { public Child( ) { ...... 派生类的构造函数} public static void Main( ) { Child a=new Child( ); a.WriteItem( ); } } 派生类使用基类的方法 基类的构造函数先执行再执行派生类的构造函数。 2. 域的继承、添加与隐藏 1、域的继承:子类可以继承父类的所有成员。 2、域的添加:在子类定义中加上新的域变量,就可以使得子类具有比父类多的属性。如: class Student: Person { string school; int score; } 子类比父类多了两个成员: school、score。 3、域的隐藏:子类重新定义一个从父类中继承的域变量。 class A{ public int a; } class B:A { new public int a;} 使用new修饰符来隐藏父类的同名成员a。 3. 方法的继承、添加与覆盖 1、方法的继承:子类可以继承父类的所有方法。 2、方法的添加:在子类定义中加上新的方法,以针对子类实现相应的功能。比如可以在Student类中定义分数的判断方法。 3、方法的覆盖:子类定义与父类同名的方法。(多态之一) (1)定义同名但参数列表不同的方法,称为方法的重载; (2)定义同名且参数列表也相同的方法,称为新增,这时应 该在同名方法前面用new修饰符; (3)定义同名且参数列表也相同的方法,并且父类中的方法用abstract/virtual进行修饰,子类中的方法用override进行了修饰,称为虚方法的覆盖。 方法重载举例 class parent { public int add( int x,int y ) { return(x+y); } class child:parent { public int add(int x,int y ,int z) { return(x+y+z); } public static void Main( ) { child c1=new child( ); c1.add(1,2,3); c1.add(4,5); } 分别使用了自己和父类的方法。 方法隐藏举例 class parent { public int add( int x,int y ) { return(x+y); } class child:parent { new public int add(int x,int y) { return(x+y+10); } public static void Main( ) { child c1=new child( ); c1.add(4,5); } 使用了自己的方法。 虚方法覆盖举例 Class one { public void x( ) {Console.WriteLine(“one_x”);} public virtual void y( ) {Console.Write
文档评论(0)