欢迎来到天天文库
浏览记录
ID:37011052
大小:2.74 MB
页数:20页
时间:2019-05-11
《Java面向对象编程-继承与多态》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、准备上课了!www.whunf.com.cnJava面向对象高级编程讲师:李志成继承与多态目录www.whunf.com.cnJava类对象引用回顾1Java继承2Java多态3类、对象与引用什么是类(Class)?类是具有相同特性和行为的对象集合;是一种抽象,它把一类物体的特征抽象出来,通过适当的数据类型表示。什么是对象(Object)?与类相对而言,类是抽象,对象就是具体。例如:人就是一个抽象类,而你、我、他就是一个’人’的对象。什么是引用(reference)?对象的名字,用来操作对象。同一对象可以有多
2、个应用吗?www.whunf.com.cn为什么需要类?Class:n.班级;上课;等级阶级;种类Object:n.物体;客体对象;目的目标目录www.whunf.com.cnJava类对象引用回顾1Java继承2Java多态3面向对象三大特性2.继承3.多态1.封装www.whunf.com.cn封装:类就是封装,封装了属性与方法。它是一种思想,其核心就是“暴露出必要的内容给外部用,而对于内部细节,使用者不用去关心”立即进入面向对象的继承与多态世界一切从汽车开始www.whunf.com.cnpublicc
3、lassCar{publicintspeed;//in变量,表示汽车沫磨publicStringname;/表示汽车名字publicStringcolor;//表示汽车颜色publicvoidspeedUp(intp_speed){if(p_speed>0){speed+=p_speed;}}publicvoidslowDown(intp_speed){if(p_speed>0){inttempSpeed=speed-p_speed;if(tempSpeed>=0){speed=tempSpeed;}}}}系
4、统升级:需要支持公交汽车。业务点:1.包含普通汽车所有属性与行为;2.增加“最大核载人数”、“当前旅客总数”属性;3.增加“上客”、“下客”行为1.增加一个新类2.修改原来的类(选用此方式)解决修改原来的Car类www.whunf.com.cnpublicclassCar{//省略publicbooleanisBus;//下面是专门为公共汽车增加的三个属性publicintmax_Passenger=35;publicintcurrent_Passenger=0;//专门为公共汽车增加的方法,完成旅客上车的功
5、能publicbooleangetOnBus(intp_amout){if(isBus){//省略}returnfalse;}//专门为公共汽车增加的方法,完成旅客下车的功能publicbooleangetDownBus(intp_amout){if(isBus){//省略}returnfalse;}}系统升级:需要支持跑车。业务点:1.包含普通汽车所有属性与行为;2.增加“氮气含量”属性;3.增加“使用氮气加速”行为1.增加一个新类2.修改原来的类解决到底有多少种类型的车需要支持?一类车一个类一类车一个类不
6、管有多少车,就有多少类,再多也不怕,就是“累”点而已突然一天,要为所有的车添加相同属性和行为的时候,怎么办?这就不是类与累了,而是“泪”了。www.whunf.com.cn问题提出:1.一个类表示所有的汽车类型,需要穷举所有汽车的属性与方法;2.一个类表示一个汽车类型,当需要修改的时候需要修改所有的类。继承使用继承——问题引刃而解www.whunf.com.cnpublicclassCarBase{publicintspeed;publicStringname;publicStringcolor;public
7、intmaxSpeed=0;inttempSpeed=0;if(p_speed>0){tempSpeed=speed+p_speed;}if(tempSpeed<=maxSpeed){speed=tempSpeed;}}publicvoidslowDown(intp_speed){if(p_speed>0){inttempSpeed=speed-p_speed;if(tempSpeed>=0){speed=tempSpeed;}}}}publicclassBusextendsCarBasepublicintm
8、ax_Passenger=35;//只需包含Bus特有的属性publicintcurrent_Passenger=0;//只需包含Bus特有的方法publicbooleangetOnBus(intp_amout){if(isBus){//省略}returnfalse;}}publicclassSportsCarextendsCarBasepublicintnAmount=90;//保存氮气的剩余量/
此文档下载收益归作者所有