Java(第8章面向对象(多态性for reading)

Java(第8章面向对象(多态性for reading)

ID:37798589

大小:234.28 KB

页数:58页

时间:2019-05-31

Java(第8章面向对象(多态性for reading)_第1页
Java(第8章面向对象(多态性for reading)_第2页
Java(第8章面向对象(多态性for reading)_第3页
Java(第8章面向对象(多态性for reading)_第4页
Java(第8章面向对象(多态性for reading)_第5页
资源描述:

《Java(第8章面向对象(多态性for reading)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Java编程基础Java编程基础——对象的多态杨巍yangwei@mail.neu.edu.cnJava编程基础多态性多态性方法的重载overload与覆写override对象的多态性具有继承关系的引用类型变量才能相互转换向上转型Upcasting子类对象父类对象向下转型DownwardCast父类对象子类对象2Employeeemployee=newManager();//legalemployee.department="Sales";//illegalPolDemo1.javaJava编程基础Upcast

2、ing上溯造型向上转型Upcasting子类对象父类对象程序会自动完成向上转型损失了子类新扩展的属性和方法,仅剩下父类中声明过的属性和方法如果对象发生了向上转型关系后,所调用的方法一定是被子类覆盖过的方法4Java编程基础Upcasting上溯造型Upcastingtest.java5Java编程基础“overriding”privatemethods“overriding”privatemethods——private方法能否被重写privatemethodishiddenfromthederivedclass

3、onlynon-privatemethodsmaybeoverriddenoverridingprivatemethods,whichgeneratesnocompilerwarningsPrivateOverride.javaStaticPolymorphism.javaJava编程基础DownwardCast向下转型DownwardCast父类对象子类对象必须明确地指明要转型的子类类型子类子类对象=(子类)父类实例向下转型的前提条件必须是曾经做过向上转型的对象,才能再向下转型PolDemo2.java7Java编

4、程基础instanceof操作符instanceof操作符判断一个对象到底是哪个类的实例返回boolean类型对象instanceof类PolDemo3.java8Java编程基础instanceof操作符在进行对象的向下转型关系前,最好先判断后再进行相应的转换操作publicvoiddoSomething(Employeee){if(einstanceofManager){//ProcessaManager}elseif(einstanceofEngineer){//ProcessanEngineer}else{//Pr

5、ocessanyothertypeofEmployee}}9Java编程基础CovariantreturntypesMethodOverride重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型Covariantreturntypesanoverriddenmethodinaderivedclasscanreturnatypederivedfromthetypereturnedbythebase-classmethodCovariantReturn.javaJava编程基础Java编程基础——抽象类杨巍yangw

6、ei@mail.neu.edu.cnJava编程基础抽象类Abstractclasses抽象类Abstractclasses专门用来做父类模板——设计者依据抽象类的格式来修改并创建新的类不能直接由抽象类创建对象抽象类必须被继承12Java编程基础抽象类抽象类的定义格式abstractclass抽象类名称{属性;访问权限返回值类型方法名称(参数){[return返回值;]}访问权限abstract返回值类型方法名称(参数);}13Java编程基础抽象类抽象方法abstract关键字只有方法名,没有方法体——只需声明

7、而不需要实现抽象类abstract关键字不能被实例化为对象包含抽象方法方法的类必须是抽象类抽象类必须被继承,子类必须覆写override抽象类中的全部抽象方法14packagech08.abstract1;Java编程基础abstractclassA{publicstaticfinalStringFLAG="China";privateStringname="yangwei";publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name

8、=name;}publicabstractvoidprint();}packagech08.abstract1;publicclassBextendsA{publicvoidprint(){System.out.println("FLAG="+FL

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

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

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