第四章 面向对象编程高级技术ppt课件.ppt

第四章 面向对象编程高级技术ppt课件.ppt

ID:59439620

大小:153.50 KB

页数:53页

时间:2020-09-18

第四章 面向对象编程高级技术ppt课件.ppt_第1页
第四章 面向对象编程高级技术ppt课件.ppt_第2页
第四章 面向对象编程高级技术ppt课件.ppt_第3页
第四章 面向对象编程高级技术ppt课件.ppt_第4页
第四章 面向对象编程高级技术ppt课件.ppt_第5页
资源描述:

《第四章 面向对象编程高级技术ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第四章 面向对象高级技术面象对象高级技术类的继承:重用多态性:静态多态(编译期多态)动态多态(运行期多态)抽象类/接口继承学生人公司雇员中学生大学生经理普通员工轮船客轮货轮1、讨论:图所表示的关系2、轮船——客轮的关系示例(共性与个性)3、列举其它的类似关系4、继承是一种代码重用机制,反映了类之间的”isa”关系。父类(或基类、超类)子类(或派生类)继承货车:属性:车牌号、车类型、购车价格、出租单价、出租里程数、吨位数、租金。方法:租金计算等。大客车:属性:车牌号、车类型、购车价格、出租单价、出租里程数、出租小时数、坐位数、租金。方法:租金计算等。小轿车:属性:车牌号、

2、车类型、购车价格、出租单价、出租里程数、出租天数、租金。方法:租金计算等。各类车之间的关系图示父类(或基类、超类)子类(或派生类)继承的语法继承的语法使用关键字extends格式:classSubNameextendsSupName{//其它代码…}如:classManagerextendsEmpoyee{}例4-1:VehicleTest1.java成员属性与成员方法的继承规则父类publicdefaultprotectedprivate同一包中子类publicdefaultprotected不被继承扩展子类、编程实践扩展子类为子类添加新的成员属性;为子类添加新的成员

3、方法;子类由两部分组成:从父类继承的属性和方法.自身新增的属性和方法.例4-2:VehicleTest2.java实战演习1.创建一个具有确定位置矩形类PlainRect,该类继承于第三章中例3_4中的类Rect2,其确定位置用矩形的左上角坐标来标识,为该类添加:两个属性:矩形左上角坐标startX和startY。一个方法:方法isInside(doublex,doubley)。用于判断某个点是否在矩形内部,如在矩形内,返回true,否则,返回false。2.编写上题PlainRect类的测试程序(1)创建一个左上角坐标为(10,10),长为20,宽为10的矩形对象;(

4、2)计算并打印输出矩形的面积和周长;(3)判断点(25.5,13)是否在矩形内,并打印输出相关信息。PlainRectTest.javaRect2.java分析与讨论衬衣与裙子类具有许多相同的属性,能否将它们看成一种继承关系?深入理解继承概念面向对象中的继承是一个基于分类学的概念,继承描述的是一种“isa”的关系。子类是父类在同一个分类分支上的一个更为特殊的类,只有当类之间存在的是一种能够被描述为:“子类isa父类”的时候,我们才使用继承。因此,在面向对象程序设计中,Skirt与Shirt类不能表示为一种继承关系。添加抽象服装衬衣裙子“继承”的使用规则一、如果类A和类B

5、毫不相关,不可以为了使B的功能更多些而让B继承A的功能。不要觉得“白吃白不吃”,让一个好端端的健壮青年无缘无故地吃人参补身体。二、如果类B有必要使用A的功能,则要分两种情况考虑:(1)若在逻辑上B是A的“一种”(”isa”),则允许B继承A的功能。如男人(Man)是人(Human)的一种,男孩(Boy)是男人的一种。那么类Man可以从类Human派生,类Boy可以从类Man派生。(2)若在逻辑上A是B的“一部分”(”hasa”),则不允许B继承A的功能,而是要用A和其它东西组合出B。子类构造器为Vehicle类添加构造器方法,观察编译结果子类构造器构造器主要用来完成对类

6、成员属性进行初始化,子类中的属性包含从父类继承下来的属性和自己新添加的属性属性初始化的顺序规定为:先初始化从父类中继承的属性,再初始化子类新添加属性。格式:constructor(){super(父类构造器参数);//调用父类构造器其它;//对本类属性进行初始化或其它处理代码}子类构造器注意:1、super必须为子类构造方法的第一个语句。为什么?2、子类不写super语句时,默认调用父类无参构造方法。如果父类没有无参构造方法,在子类中不写super语句会出错。编程实践例4-3:Truck3Test.java实战演习:按照习题1、2修改PlainRect类,使用super

7、来初始化父类属性子类对父类属性的隐藏如果子类声明了一个与父类的成员变量同名的成员变量,则称父类的该成员变量被隐藏(hiding)下面代码段的输出结果是?classA{protectedintx=10;}classHidingextendsA{privateintx=20;voidprint(){System.out.println("x="+x);}publicstaticvoidmain(Stringargs[]){Hidingb=newHiding();b.print();}}1.输出x=20还是x=10?2.如何访问从父类继承下来的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。