Java程序设计实例教程-第4章.pptx

Java程序设计实例教程-第4章.pptx

ID:52849076

大小:625.88 KB

页数:47页

时间:2020-03-26

Java程序设计实例教程-第4章.pptx_第1页
Java程序设计实例教程-第4章.pptx_第2页
Java程序设计实例教程-第4章.pptx_第3页
Java程序设计实例教程-第4章.pptx_第4页
Java程序设计实例教程-第4章.pptx_第5页
资源描述:

《Java程序设计实例教程-第4章.pptx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Java程序设计实例教程第4章面向对象高级技术本章要点1覆盖23super关键字继承基础Object类final关键字多态抽象类接口内部类4567894.1继承基础面向对象的优势在于代码的复用,继承是实现代码复用的重要手段,Java的继承采用单继承机制,即每个子类只能继承一个父类。被继承的类称为父类(Superclass),而实现继承的类称为子类(Subclass),子类和父类是一种特殊与一般的关系。通过继承,子类继承父类的非私有属性与方法,并且还可以在子类中添加自己的属性和方法。当然父类也可以限制子类继承父类的某些属性和方法,只需要更改父类的某些属性和方法

2、的访问控制修饰符即可。类的继承classCar{intcar_number;voidset_number(intcar_num){car_number=car_num;}voidshow_number(){System.out.println(“MycarNo.is:”+car_number);}}4.1继承基础classTrashCarextendsCar{intcapacity;voidset_capacity(inttrash_car_capacity){capacity=trash_car_capacity;}voidshow_capacity(){

3、System.out.println(“Mycapacityis:”+capacity);}}4.1继承基础Car是父类,TrashCar是子类。TrashCar中继承了Car中的两个方法,同时又增加了两个新方法。classCarDemo{publicstaticvoidmain(Stringargs[]){TrashCardemoTrashCar=newTrashCar();demoTrashCar.set_number(4949);demoTrashCar.show_number();demoTrashCar.set_capacity(20);demoT

4、rashCar.show_capacity();}}继承的方法新增加的方法4.1继承基础继承性是面向对象程序设计语言的另一基本特征,通过继承可以实现代码的复用。继承而得到的类为子类,被继承的类为父类,父类包括所有直接或间接被继承的类。Java中不支持多重继承。通过在类的声明中加入extends子句来创建一个类的子类:classSubClassextendsSuperClass{……}如果缺省extends子句,则该类为java.lang.Object的子类。子类可以继承父类中访问权限设定为public、protected、default的成员变量和方法,但是

5、不能继承访问权限为private的成员变量和方法。2、Java中的类、方法和变量——继承4.1继承基础——何时使用继承何时选择继承?一个很好的经验:“B是一个A吗?”如果是则让B做A的子类.常犯的错误A有一个B吗?例如让汽车轮子成为汽车的子类是错误的ShapePointCircleCylinder在更多的时候,组成(聚集)关系比继承更能使系统具有高度的灵活性,可维护行,并且提高系统的可重用性。ShapePointCircleCylinder——继承与组合4.1继承基础注意:继承是面向对象技术的三大特征之一,通过继承实现了面向对象程序设计的代码复用,然而继承也

6、存在一些弊端。继承打破了类的封装,一旦父类的成员发生了改变,必将影响到子类的使用,增加了子类与父类的耦合,削弱了子类的独立性,加大了程序维护的成本;过度地使用继承,会增加子类的冗余。对于子类来说,可能仅有父类的部分成员是有用的,但是继承后,父类中所有非private类型的成员都会被继承到子类中,无疑增加子类的冗余,并且可能会对父类产生副作用;继承的层次不宜过多,就像使用数组一样,如果数组的维数过多,无疑增加了使用数组的难度。如果继承的过多,会使得结构繁琐,而且层次之间的递增扩张很快,最底层的子类会继承大量的父类的成员,从而变得冗余、臃肿。一般来说,设计很好的

7、继承体系应该保持在3层以内。4.1继承基础本章要点1覆盖23super关键字继承基础Object类final关键字多态抽象类接口内部类4567894.2覆盖子类中的某些方法名及形参列表与父类中的方法名和形参列表完全相同,那么这种情况称为方法的覆盖(Override),也称为方法的重写。相应地,如果父类中的成员变量与子类的成员变量重名,称为变量的覆盖。类方法的覆盖方法覆盖即指在子类中重新定义父类中已有的方法。classCar{intcolor_number;intdoor_number;intspeed;publicvoidpush_break(){speed

8、=0;}publicvoidadd_oil(){…}

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

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

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