java第6节:polymorphism

java第6节:polymorphism

ID:34139744

大小:194.95 KB

页数:63页

时间:2019-03-03

java第6节:polymorphism_第1页
java第6节:polymorphism_第2页
java第6节:polymorphism_第3页
java第6节:polymorphism_第4页
java第6节:polymorphism_第5页
资源描述:

《java第6节:polymorphism》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、AdvancedJavaProgramming2010SpringPENGQiminqimin@ioscnqimin@ios.cn抽象类与接口¢例:publicclassA{publicclassA{publicvoiddoSth(){…};}pp{ublicclassB{publicvoiddoSth(){…};}¢例:publicclassC{publicvoidexcute(Aa){a.dSth()doSth();…};publicvoidexcute(Bb){publicvoidexcute(Bb){b.doSth();…};}¢例:publicclassParent

2、OfAB{publicvoiddoSth(){publicvoiddoSth(){…};}¢例:publicclassC{publicvoidexcute(ParentOfABo){publicvoidexcute(ParentOfABo){o.doSth();…};}¢多态实现指使用同一个实现接口,以实现不同的对象实例。¢实现接口:即类中定义的公开方法,通过这些接口,可以对对象实例加以实现。¢多态(Polymorphism)提高了程序可扩充性,调用多态性行为的软件传送给对象的消息(即方法调用)与对象的类型无关,因此能响应已有消息的新类型可以直接加入系统,而不用修改基本系统。

3、多态性¢静态多态性(早期绑定:编译期(C++缺省模式))¢动态多态性(后期绑定:运行期(Java缺省模式)):£系统会自动根据运行时的实例类型调用相应的方法。£用父类的引用作为方法的参数,而在方法调用时传入子类的实例。¢调用一个对象方法的机制£编译器检查对象的声明类型和方法名。£编译器检查方法调用中的参数类型。如果在所有的叫做f的方法中有一个其参数类型同调用提供的参数类型最匹配,那么该方法就会被选择调用。这个过程称作超载选择。£当程序运行并且使用动态绑定来调用一个方法时,那么虚拟机必须调用同x所指向的对象的实际类型相匹配的方法版本。¢多态实现不依赖具体的类,而是依赖于抽象。¢

4、Java中的多态通过抽象类和接口实现。¢abstract是抽象修饰符,可以用来修饰类或方法。抽象类¢抽象类:继承类的基类;没有具体实例对象的类,包含抽象方法的类。£当一个类被声明为abstract时被称为抽象类。£抽象类不能实例化为任何对象。¢建立抽象类的意图就是为所有由它派生出来的类创建一个公共接口。抽象方法¢抽象方法无函数定义;继承类必须实现该函数,它属于一种不完整的方法,只含有一个声明,没有方法主体。¢抽象方法声明时采用的语法:abtbstracttvoidX();接口¢多重继承是指一个子类继承多个父类。Java不支持多重继承,但Java提供了接口。¢接口具有多继承的许

5、多优点,而却没有它的缺点。接口¢在面向对象的程序设计中,定义一个类必须做什么而不是将怎样做有时是很有益的。¢抽象方法为方法定义了签名但不提供实现方式。一个子类必须提供自己的由其超类定义的抽象方法的实现方式。这样,抽象方法就指定了方法的接口而不是实现方式。接口¢Java接口(Interface)是对符合接口需求的类的一套规范。¢在Java中用关键字interface把一个类的接口和实现方式完全分开。¢接口主要作用是可以帮助实现类似于类的多重继承的功能。£在Java中,出于简化程序结构的考虑,不再支持类间的多重继承而只支持单重继承,即一个类至多只能有一个直接父类。然而在解决实际问

6、题的过程中,仅仅依靠单重继承在很多情况下都不能将问题的复杂性表述完整,需要其他的机制作为辅助。¢Java中声明接口的语法[public]interface[public]interface接口名[extends父接口名列表]{//接口体;//常量域声明[public][static][final]域类型域名=常量值;//抽象方法声明[public][abstract][native]返回值方法名(参数列表)[throw异常列表];}接口声明¢所有成员域都具有public,static,final的属性£接口中可以包含pubicfinalstaticpubicfinalstat

7、ic修饰的常量数据,但这不是必须的。接口声明¢所有方法都具有public,abstract属性£接口中的方法都是用abstract修饰的抽象方法£在接口中只能给出这些抽象方法的方法名、返回值和参数列表,而不能定义方法体,即仅仅规定了一组信息交换、传输和处理的“接口”,,都只有说明没有定义¢为使用接口,一个类必须声明实现(关键字implements)接口,指定的参数个数和返回类型定义每个方法。£在类的声明部分,用implements关键字声明该类将要实现哪些接口接口的实现¢一个类在实现某接口的抽象方法时,

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

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

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