电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

面向对象编程二继承封装和多态

22页
  • 卖家[上传人]:资****亨
  • 文档编号:489842364
  • 上传时间:2024-05-14
  • 文档格式:PPT
  • 文档大小:1.27MB
  • / 22 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、第五讲 面向对象编程(二)继承、封装和多态整理ppt4.3 4.3 继承、封装和多态继承、封装和多态n n4.3.1 继承n n4.3.2 封装n n4.3.3 多态n n4.3.4 this和base关键字整理ppt4.3.1 4.3.1 类的继承类的继承 继承的意思是一个类可以建立在另一个类的根底上,可以继承另一个类的属性和方法。我们把被继承的类叫做基类,通过继承产生的类叫做派生类也可以叫做父类和子类)。继承的概念来源与现实的生活,比方汽车、轮船、火车飞机等就是继承于交通工具这个类,而汽车类中又可以派生出新的类,比方轿车、面包车等等。引入继承可以让我们重用以前写过的代码,新编写的代码可以在原来的根底上继承而来。在C#中继承的方式就是定义派生类。在C#中,所有的类都是通过直接或间接地继承Object类得到的。整理ppt1.1.派生子类派生子类定义派生类的根本形式:class 派生类名字:基类名字 派生类的代码;public class Parent public Parent().定义一个构造函数 public void WriteItem().定义方法 public class C

      2、hild:Parent public Child().派生类的构造函数 public static void Main()Child a=new Child();a.WriteItem();派生类使用基类的方法基类的构造函数先执行再执行派生类的构造函数。整理ppt2.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。整理ppt3.3.方法的继承、添加与覆盖方法的继承、添加与覆盖1、方法的继承:子类可以继承父类的所有方法。2、方法的添加:在子类定义中加上新的方法,以针对子类实现相应的功能。比方可以在Student类中定义分数的判断方法。3、方法的覆盖:

      3、子类定义与父类同名的方法。(多态之一 1定义同名但参数列表不同的方法,称为方法的重载;2定义同名且参数列表也相同的方法,称为新增,这时应 该在同名方法前面用new修饰符;3定义同名且参数列表也相同的方法,并且父类中的方法用abstract/virtual进行修饰,子类中的方法用override进行了修饰,称为虚方法的覆盖。整理ppt方法重载举例方法重载举例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);分别使用了自己和父类的方法。整理ppt方法隐藏举例方法隐藏举例class parent public int add(int x,int y)return(x+y);class child:parent new public int add(int x,int

      4、y)return(x+y+10);public static void Main()child c1=new child();c1.add(4,5);使用了自己的方法。整理ppt虚方法覆盖举例虚方法覆盖举例Class one public void x()Console.WriteLine(“one_x);public virtual void y()Console.WriteLine(“one_y);Class two:one new public void x()/隐藏父类中的同名方法 Console.WriteLine(“two_x);public override void y()/重写同名方法 Console.WriteLine(“two_y);Class test public static void Main()two m2=new m2();one m1=m2;/m1指向m2实例 m1.x();m2.x();m1.y();m2.y();结果:one_x two_x two_y two_y整理ppt4.3.2 4.3.2 类的封装类的封装 类的封装改变了用户传统的使用数据

      5、和代码的方式,它将方法和数据包含在一起构成一个独立的单元,可以通过设定单元内各个成员的的特性来控制对成员的访问。比方将一个字段定义为private,就可以防止外界直接访问这个字段。封装一个类由两种做法:1为一个私有类定义公共读方法和写方法;2使用属性,用set和get访问器。整理pptpublic class Student private string studentname;public string getstudentname()return(studentname);public string setstudentname(string na)studentname=na;class App public static void Main()Student s1=new Student();s1.setstudentname(“zhanghua);Console.WriteLine(s1.getstudentname();不能使用语句s1.studentname=“zhanghua;整理ppt4.3.3 4.3.3 多态多态 多态指的是定义具有不同功能但相同名称的方法或属性的

      6、多个类的能力。C#中的多态可以由虚方法实现。对于非虚方法,其实现是不变的,无论由基类实例调用还是由派生类实例调用都是相同的;而虚方法的实现可以由派生类取代,取代的过程称为重写。重写可以取代从基类继承的虚方法,但原虚方法的可访问性不能改变,静态方法和非虚方法不能被重写。基类 public virtual void Show().派生类 public override void Show().整理ppt 虚方法重写举例:定义基类圆形Round,有一个成员半径,编写构造函数和计算面积的虚方法Area;再定义一个派生类球形Sphere,对虚方法Area进行重写。class Round public double r;public Round(double r)this.r=r;public virtual double Area()return(3.14*r*r);class Sphere:Round public Sphere(double r):base(r)public override double Area()return(3.14*r*r*r);class App static v

      7、oid Main()Sphere s=new Sphere(2);Console.WriteLine(s.Area();整理ppt1.this关键字关键字this关键字的作用是引用调用方法的当前实例,它可以从构造函数、实例方法和实例访问器中访问成员。用法一:使用this来访问域和方法void sayHello()Console.WriteLine(“My name is+name);与以下方法相同void sayHello()Console.WriteLine(“My name is+this.name);用法二:解决局部变量与域同名问题public Student(string name,string number)this.name=name;this.number=number;4.3.4 this4.3.4 this和和basebase关键字关键字整理pptthis关键字举例关键字举例using System;public class Student public string name;public string number;public double subsidy=18

      8、0;public Student(string name,string number)this.name=name;this.number=number;public void ShowInfo()Console.WriteLine(“0n1,name,number;Console.WriteLine(“0,AdvSubsidy.Caculate(this);public class AdvSubsidy public static double Caculate(student E)return(1.5*(E.subsidy);public class AppMain public static void Main()Student s1=new Student(“zhanghua,“200454240);s1.ShowInfo();整理pptthisthis的本卷须知的本卷须知this指的是调用的“对象本身1通过this不仅可以引用该类中定义的域和方法,还可以引用该类的父类中定义的域和方法;2在static静态方法中,不能使用this关键字。整理ppt2.base2.base关键字

      9、:关键字:basebase指的是父类指的是父类1)明确指明父类的域和方法,例如,父类Person中有一个域为age,那么在子类Student中用age、this.age、base.age来访问age是完全一样的。2)当子类的方法隐藏或覆盖了父类的同名方法但又要调用父类的方法时,使用base关键字。3)想使用父类的构造方法。构造方法是不能继承的,但子类可以在构造方法中调用直接父类的构造方法,如 Student(string name,int age,string school):base(name,age)this.school=school;整理pptbase用法用法2举例举例using System;public class A public int a=10;public void m()a+;Console.WriteLine(a);class B:A new public int a=20;new public void m()a+;/base.m();Console.WriteLine(a);public static void Main()A x=new A();Conso

      10、le.WriteLine(x.a);/10 x.m();/11 B y=new B();Console.WriteLine(y.a);/20 y.m();/11 21 如此处直接使用base.m();那么最后的结果为12而不是21。整理ppt4.4 4.4 运算符重载运算符重载n n4.4.1 运算符重载根本概念n n4.4.2 单目运算符重载n n4.4.3 双目运算符重载整理ppt4.4.1 4.4.1 多态之二:运算符的重载多态之二:运算符的重载运算符可以进行根本数据类型之间的运算,想把自己定义的类型进行类似“之类的运算就要用到运算符重载对于、运算符完全可以提供对应的方法来完成,比方Decimal x,y;X+=y;可以写成 decimal.Add(x,y)x+=y;运算符重载的一般形式是 public static 返回类型 operator 运算符参数表 语句;整理pptusing System;using System;Class class1Class class1 public int x1,x2;public int x1,x2;public class1()publ

      《面向对象编程二继承封装和多态》由会员资****亨分享,可在线阅读,更多相关《面向对象编程二继承封装和多态》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.