第3章 面向对象高级编程(32)-回顾.ppt

第3章 面向对象高级编程(32)-回顾.ppt

ID:61906702

大小:393.00 KB

页数:10页

时间:2020-02-07

第3章 面向对象高级编程(32)-回顾.ppt_第1页
第3章 面向对象高级编程(32)-回顾.ppt_第2页
第3章 面向对象高级编程(32)-回顾.ppt_第3页
第3章 面向对象高级编程(32)-回顾.ppt_第4页
第3章 面向对象高级编程(32)-回顾.ppt_第5页
资源描述:

《第3章 面向对象高级编程(32)-回顾.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Java面向对象程序设计Java多态性-回顾多态的概念所谓多态,是指一个程序中同名的不同方法共存的情况面向过程中过程和函数名是不能重名的面向对象中“重名”现象可以提高程序的抽象度和简洁性方法覆盖实现的多态子类中定义与父类中同名,并且参数类型和个数也相同的方法,被称为方法的覆盖(override)。这些方法的定义后,在子类的实例化对象中,父类中继承的这些同名方法将被隐藏。覆盖方法的区分:只需在调用方法时指明调用的是哪个类的方法classEmployee{publicvoidraiseSalary(floatproportion){s

2、alary+=salary*proportion;}}classManagerextendsEmployee{publicvoidraiseSalary(floatproportion){salary+=salary*(proportion+0.1);}}classTemporaryEmployeeextendsEmployee{publicvoidraiseSalary(floatproportion){salary+=salary*(proportion*0.5);}}Employeee=newEmployee();e.rai

3、seSalary(0.1);Managerm=newManager();m.raiseSalary(0.1);TemporaryEmployeet=newTemporaryEmployee();t.raiseSalary(0.1);方法重载实现的多态在同一个类中定义的同名方法,被称为方法的重载(overload)重载方法的区分:一般采用不同的形式参数列表,包括形式参数的个数、类型、顺序的不同,来区分重载的方法。例如TicketSeller类中的构造方法publicTicketSeller(intticketCost)publicT

4、icketSeller(intticketCost,inttickets)TicketSellert1=newTicketSeller(100);TicketSellert2=newTicketSeller(100,1000);方法重载实现的多态例如PrintStream类中的println方法publicvoidprintln();publicvoidprintln(Stringstr);publicvoidprintln(intx);publicvoidprintln(doublex);System.out.println()

5、;System.out.println(“HelloWorld!”);System.out.println(3.1415926);System.out.println(65536);对象引用的多态(1)子类对象可以作为父类的对象来使用classVehicle{}//父类classCarextendsVehicle{}classBusextendsVehicle{}classTruckextendsVehicle{}Vehiclevehicle1=newCar(“小轿车”,”宝马”,56);Vehiclevehicle2=newBu

6、s(“大客车”,”奔驰”,123,30);Vehiclevehicle3=newTruck(“货车”,”吉瑞”,67,15);对象引用的多态(2)父类对象不能作为其某一个子类的对象Carcar=newVehicle();//错误,不兼容的类型(3)如果一个方法的形式参数定义的是父类对象,那么调用这个方法时,可以使用子类对象作为实际参数例如:VehicleData类中定义addVehicle方法publicvoidaddVehicle(VehicleaVehicle){vehicles.add(aVehicle);}VehicleD

7、atavList=newVehicleData();Carcar=newCar("小轿车","宝马",56);Busbus=newBus("大巴车","奔驰",123,30);Trucktruck=newTruck("货车","吉瑞",67,15);vList.addVehicle(car);vList.addVehicle(bus);vList.addVehicle(truck);对象引用的多态通过父类变量可以让一个子类的对象做父类对象可以做的事情通过父类变量不能让子类对象做父类对象不不能做的事情,即使子类对象有这样的功能Veh

8、iclevehicle1=newCar(“小轿车”,”宝马”,56);vehicle1.printInfo();//这个调用是正确的在Car类中增加一个父类没有的方法printCarvehicle1.printCar();//这个调用是错误的对象引

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

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

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