ch09-继承和多态(lite)

ch09-继承和多态(lite)

ID:39962510

大小:440.00 KB

页数:46页

时间:2019-07-16

ch09-继承和多态(lite)_第1页
ch09-继承和多态(lite)_第2页
ch09-继承和多态(lite)_第3页
ch09-继承和多态(lite)_第4页
ch09-继承和多态(lite)_第5页
资源描述:

《ch09-继承和多态(lite)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Java程序设计第9章继承和多态学习目标理解类继承的概念以及父类和子类的关系理解super关键字掌握方法覆盖理解多态性、动态绑定和对象的强制类型转换掌握修饰符:protected、finalObject类中的方法了解ArrayList类Employee和ManagerpublicclassEmployee{publicStringname;publicdoublesalary;publicDatebirthDate;publicStringgetDetails(){...}}publicclassManager{publicStringname;publicdouble

2、salary;publicDatebirthDate;publicStringdepartment;publicStringgetDetails(){...}}继承publicclassEmployee{publicStringname;publicdoublesalary;publicDatebirthDate;publicStringgetDetails(){...}}publicclassManagerextendsEmployee{publicStringdepartment;}Employee+++namesalarybirthDate:String:doub

3、le:Date+getDetails():StringManager+department:String考虑到Manager只比Employee多出一个属性Department,可以利用继承机制父类和子类语法classClassNameextendsSuperclass{classbody}如果classC1extendsC2,则称C1为子类(subclass),C2为父类(superclass)。子类继承了父类中可访问的数据和方法,子类也可添加新的数据和方法,是不是类似生物学里的遗传和变异?子类不继承父类的构造函数。一个类只能有一个直接父类。继承ManagerEmpl

4、oyeeEmployee的数据Employee的方法Employee的数据Manager的数据Employee的方法Manager的方法一个设计案例假设要设计模拟几何对象的类,如圆和矩形,考虑的因素有颜色,是否填充,创建日期,圆的半径,矩形的周长等不要直接就定义ClassCircle和ClassRectangle,先分析几何对象的共同属性和行为。共同的属性和行为有颜色、是否填充,创建时间,以及这些属性的getter和setter行为。而圆的半径、矩形的长宽不是几何图形共有的属性。可以设计通用类GeometricObject来模拟共有的属性和方法。而Circle、Rect

5、angle类通过继承GeometricObject获得共同的属性和行为,同时添加自己特有的属性和行为三个类的UML表示GeometricObject类publicclassGeometricObject{privateStringcolor="white";privatebooleanfilled;privateDatedateCreated;publicGeometricObject(){dateCreated=newDate();}publicStringgetColor(){returncolor;}publicvoidsetColor(Stringcolor){

6、this.color=color;}publicbooleanisFilled(){returnfilled;}publicvoidsetFilled(booleanfilled){this.filled=filled;}publicDategetDateCreated(){returndateCreated;}publicStringtoString(){return"createdon"+dateCreated+"tcolor:"+color+"andfilled:"+filled;}}Circle类publicclassCircleextendsGeomet

7、ricObject{privatedoubleradius;//新增属性publicCircle(){}publicCircle(doubleradius){this.radius=radius;}publicdoublegetRadius(){returnradius;}publicvoidsetRadius(doubleradius){this.radius=radius;}publicdoublegetArea(){returnradius*radius*Math.PI;}publicdoublegetDiameter(){retu

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

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

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