Java面向对象程序设计第5章继承与接口.ppt

上传人:wuy****n92 文档编号:70796679 上传时间:2023-01-28 格式:PPT 页数:28 大小:254.99KB
返回 下载 相关 举报
Java面向对象程序设计第5章继承与接口.ppt_第1页
第1页 / 共28页
Java面向对象程序设计第5章继承与接口.ppt_第2页
第2页 / 共28页
点击查看更多>>
资源描述

《Java面向对象程序设计第5章继承与接口.ppt》由会员分享,可在线阅读,更多相关《Java面向对象程序设计第5章继承与接口.ppt(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Java面向对象程序设计面向对象程序设计第第5章章配合例子源代码一起使用例子源代码一起使用Power point 制作:耿祥义 张跃平继承与接口 2010-1-101主要内容主要内容子类与父类子类与父类子类的继承性子类的继承性子类对象的构造过程子类对象的构造过程成员变量的隐藏和方法重写成员变量的隐藏和方法重写super关键字关键字final关键字关键字对象的上转型对象对象的上转型对象继承与多态继承与多态abstract类与类与abstract方法方法接口接口难点难点成员变量的隐藏和方法重写成员变量的隐藏和方法重写继承与多态继承与多态导读导读2010-1-1025.1子类与父类子类与父类利利用用

2、继继承承,可可以以先先编编写写一一个个共共有有属属性性的的一一般般类类,根根据据该该一一般般类类再再编编写写具具有有特特殊殊属属性性的的新新类类,新新类类继继承承一一般般类类的的状状态态和和行行为为,并并根根据据需需要要增增加它自己的新的状态和行为。加它自己的新的状态和行为。由由继继承承而而得得到到的的类类称称为为子子类类,被被继继承承的的类类称称为为父类(超类)父类(超类)。声明一个类的子类的格式如下:声明一个类的子类的格式如下:class子类名子类名extends父类名父类名2010-1-1035.2子类的继承性子类的继承性所所谓谓子子类类继继承承父父类类的的成成员员变变量量作作为为自自己

3、己的的一一个个成成员员变变量量,就就好好象象它它们们是是在在子子类类中中直直接接声声明明一一样样,可可以以被被子子类类中中自自己己定定义义的的任任何何实实例例方方法操作。法操作。所所谓谓子子类类继继承承父父类类的的方方法法作作为为子子类类中中的的一一个个方方法法,就就象象它它们们是是在在子子类类中中直直接接定定义义了了一一样样,可以被子类中自己定义的任何实例方法调用。可以被子类中自己定义的任何实例方法调用。2010-1-1045.2.1子类和父类在同一包中的继承性子类和父类在同一包中的继承性如如果果子子类类和和父父类类在在同同一一个个包包中中,那那么么,子子类类自自然然地地继继承承了了其其父父

4、类类中中不不是是private的的成成员员变变量量作作为为自自己己的的成成员员变变量量,并并且且也也自自然然地地继继承承了了父父类类中中不不是是private的的方方法法作作为为自自己己的的方方法法,继继承承的的成成员员变量或方法的变量或方法的访问权限访问权限保持不变。保持不变。例例5-15-12010-1-1055.2.2子类和父类不在同一包中的继承性子类和父类不在同一包中的继承性 如如果果子子类类和和父父类类不不在在同同一一个个包包中中,那那么么,子子类类继继承承了了父父类类的的protectedprotected、publicpublic成成员员变变量量做做为为 子子 类类 的的 成成

5、员员 变变 量量,并并 且且 继继 承承 了了 父父 类类 的的protectedprotected、publicpublic方方法法为为子子类类的的方方法法,继继承承的的成员或方法的成员或方法的访问权限访问权限保持不变。保持不变。2010-1-1065.3子类对象的构造过程子类对象的构造过程 用用子子类类创创建建对对象象时时,不不仅仅子子类类中中声声明明的的成成员员变变量量被被分分配配了了内内存存,而而且且父父类类的的成成员员变变量量也也都都分分配配了了内内存存空空间间,但但只只将将其其中中一一部部分分(子子类类继继承承的的那部分)作为分配给子类对象的变量那部分)作为分配给子类对象的变量。例

6、例5-25-22010-1-1075.4成员变量的隐藏和方法重写成员变量的隐藏和方法重写 5.4.1成员变量的隐藏成员变量的隐藏 对对于于子子类类可可以以从从父父类类继继承承的的成成员员变变量量,只只要要子子类类中中声声明明的的成成员员变变量量和和父父类类中中的的成成员员变变量量同同名名时时,子子类类就就隐隐藏藏了了继继承承的的成成员员变变量量,子子类类自自己己声声明明定定义义的的方方法法操操作作与与父父类类同同名名的的成成员员变变量量是指子类重新声明定义的这个成员变量。是指子类重新声明定义的这个成员变量。例例5-35-3 2010-1-1085.4.2方法重写(方法重写(Override)子

7、类通过重写可以隐藏已继承的实例方法。子类通过重写可以隐藏已继承的实例方法。1 1重写的语法规则重写的语法规则如如果果子子类类可可以以继继承承父父类类的的某某个个实实例例方方法法,那那么么子类就有权利重写这个方法。子类就有权利重写这个方法。方方法法重重写写是是指指:子子类类中中定定义义一一个个方方法法,这这个个方方法法的的类类型型和和父父类类的的方方法法的的类类型型一一致致或或者者是是父父类类的的方方法法的的类类型型的的子子类类型型,并并且且这这个个方方法法的的名名字字、参参数个数、参数的类型和父类的方法完全相同。数个数、参数的类型和父类的方法完全相同。2 2重写的目的重写的目的 子子类类通通过

8、过方方法法的的重重写写可可以以隐隐藏藏继继承承的的方方法法,子子类类通通过过方方法法的的重重写写可可以以把把父父类类的的状状态态和和行行为为改改变为自身的状态和行为。变为自身的状态和行为。例例5-45-4,例,例5-55-52010-1-1095.5supersuper关键字关键字 子子类类可可以以隐隐藏藏从从父父类类继继承承的的成成员员变变量量和和方方法法,如如果果在在子子类类中中想想使使用用被被子子类类隐隐藏藏的的成成员员变变量量或或方方法就可以使用关键字法就可以使用关键字supersuper。2010-1-10105.5.1使用使用super调用父类的构造方法调用父类的构造方法 子子类类

9、不不继继承承父父类类的的构构造造方方法法,因因此此,子子类类如如果果想想使使用用父父类类的的构构造造方方法法,必必须须在在子子类类的的构构造造方方法法中中使使用用,并并且且必必须须使使用用关关键键字字supersuper来来表表示示,而而且且supersuper必必须须是是子子类类构构造造方方法法中中的的头头一一条语句。条语句。例例5-65-62010-1-10115.5.2使用使用super操作被隐藏的成员变量和方法操作被隐藏的成员变量和方法 在在子子类类中中想想使使用用被被子子类类隐隐藏藏的的成成员员变变量量或或方方法法就就可可以以使使用用关关键字键字supersuper。比比 如如sup

10、er.xsuper.x、super.play()super.play()就就是是访访问问和和调调用用被被子子类类隐隐藏藏的的成成员员变变量量x x和和方法方法play()play()。例例5-75-72010-1-10125.6finalfinal关键字关键字 finalfinal关关键键字字可可以以修修饰饰类类、成成员员变变量量和和方方法中的局部变量。法中的局部变量。2010-1-10135.6.1final类类可可以以使使用用finalfinal将将类类声声明明为为finalfinal类类。finalfinal类不能被继承,即不能有子类。如:类不能被继承,即不能有子类。如:final cl

11、ass A final class A 2010-1-10145.6.2final方法方法 如如果果用用finalfinal修修饰饰父父类类中中的的一一个个方方法法,那那么么这个方法不允许子类重写。这个方法不允许子类重写。2010-1-10155.6.3常量常量 如如果果成成员员变变量量或或局局部部变变量量被被修修饰饰为为finalfinal的的,就是常量。就是常量。例例5-85-82010-1-10165.7对象的上转型对象对象的上转型对象 假假设设,A A类类是是B B类类的的父父类类,当当用用子子类类创创建建一一个个对对象象,并并把把这这个个对对象象的的引引用用放放到到父父类类的的对对象

12、象中中时时,比如:比如:A a;A a;a=new B();a=new B();或或A a;A a;B b=new B();B b=new B();a=b;a=b;这时,称对象这时,称对象a a是对象是对象b b的上转型对象。的上转型对象。例例5-95-92010-1-10175.8继承与多态继承与多态 多多态态性性就就是是指指父父类类的的某某个个方方法法被被其其子子类类重重写时,可以各自产生自己的功能行为。写时,可以各自产生自己的功能行为。例例5-105-102010-1-10185.9abstractabstract类和类和abstractabstract方法方法 用用关关键键字字abst

13、ractabstract修修饰饰的的类类称称为为abstractabstract类(抽象类)。如:类(抽象类)。如:abstract class A abstract class A 用用 关关 键键 字字 abstractabstract修修 饰饰 的的 方方 法法 称称 为为abstractabstract方法(抽象方法),例如:方法(抽象方法),例如:abstract int min(int x,int y);abstract int min(int x,int y);2010-1-10195.9.1abstract类的特点类的特点1 1abstractabstract类中可以有类中可以

14、有abstractabstract方法方法 abstractabstract类类可可以以有有abstractabstract方方法法(抽抽象象方方法法)也也可可以有非以有非abstractabstract方法。方法。2 2abstractabstract类不能用类不能用newnew运算创建对象运算创建对象 对对于于abstractabstract类类,我我们们不不能能使使用用newnew运运算算符符创创建建该该类的对象。类的对象。例例5-115-11,例,例5-125-122010-1-10205.9.2abstract类与多态类与多态abstractabstract类类只只关关心心操操作作,

15、但但不不关关心心这这些些操操作作具具体体实实现现的的细细节节,可可以以使使程程序序的的设设计计者者把把主主要要精精力力放放在在程程序序的的设设计计上上,而而不不必必拘泥于细节的实现上。拘泥于细节的实现上。使使用用多多态态进进行行程程序序设设计计的的核核心心技技术术之之一一是是使使用用上上转转型型对对象象,即即将将abstractabstract类类声声明明对对象象作作为为其其子子类类的的上上转转型型对对象象,那那么么这这个个上上转转型型对对象象就就可可以以调调用用子子类类重写的方法。重写的方法。例例5-135-132010-1-10215.10接口接口 为为了了克克服服JavaJava单单继继

16、承承的的缺缺点点,JavaJava使使用用了了接口,一个类可以实现多个接口。接口,一个类可以实现多个接口。使使用用关关键键字字interfaceinterface来来定定义义一一个个接接口口。接接口口的的定定义义和和类类的的定定义义很很相相似似,分分为为接接口口的的声声明明和接口体。和接口体。2010-1-10225.10.1接口的声明与使用接口的声明与使用1接口声明接口声明接口通过使用关键字接口通过使用关键字interfaceinterface来声明,格式:来声明,格式:interface interface 接口的名字接口的名字 2接口体接口体 接口体中包含常量定义和方法定义两部分。接口体

17、中包含常量定义和方法定义两部分。3接口的使用接口的使用一一个个类类通通过过使使用用关关键键字字implementsimplements声声明明自自己己实实现现一一个个或或多多个个接接口。口。4通过通过import语句引入包中的接口语句引入包中的接口import java.io.*;import java.io.*;例例5-145-142010-1-10235.10.2理解接口理解接口 接接口口可可以以增增加加很很多多类类都都需需要要具具有有的的功功能能,不不同同的的类类可可以以实实现现相相同同的的接接口口,同同一一个个类类也也可可以以实现多个接口。实现多个接口。接口只关心操作,并不关心操作的具

18、体实现接口只关心操作,并不关心操作的具体实现 接接口口的的思思想想在在于于它它可可以以增增加加很很多多类类都都需需要要具具有有的的功功能能,而而且且实实现现相相同同的的接接口口类类不不一一定定有有继继承关系。承关系。例例5-155-152010-1-10245.10.3接口回调接口回调 接接口口回回调调是是指指:可可以以把把实实现现某某一一接接口口的的类类创创建建的的对对象象的的引引用用赋赋给给该该接接口口声声明明的的接接口口变变量量中中,那那么么该该接接口口变变量量就就可可以以调调用用被被类类重重写写的的接接口口方方法法。实实际际上上,当当接接口口变变量量调调用用被被类类重重写写的的接接口口

19、方法时,就是通知相应的对象调用这个方法。方法时,就是通知相应的对象调用这个方法。例例5-165-162010-1-10255.10.4接口与多态接口与多态 可可以以通通过过在在接接口口中中声声明明若若干干个个abstractabstract方方法法,表表明明这这些些方方法法的的重重要要性性,方方法法体体的的内内容容细细节节由由实实现现接接口口的的类类去去完完成成。使使用用接接口口进进行行程程序序设设计计的的核核心心思思想想是是使使用用接接口口回回调调,即即接接口口变变量量存存放放实实现现该该接接口口的的类类的的对对象象的的引引用用,从从而接口变量就可以回调类实现的接口方法。而接口变量就可以回调

20、类实现的接口方法。例例5-175-172010-1-10265.10.5abstractabstract类与接口的比较类与接口的比较 接口和接口和abstract类的比较如下:类的比较如下:1abstract类和接口都可以有类和接口都可以有abstract方法。方法。2接接口口中中只只可可以以有有常常量量,不不能能有有变变量量;而而abstract类类中中即可以有常量也可以有变量。即可以有常量也可以有变量。3abstract类中也可以有非类中也可以有非abstract方法方法,接口不可以。接口不可以。2010-1-10275.11小结小结 1继继承承是是一一种种由由已已有有的的类类创创建建新新

21、类类的的机机制制。利利用用继继承承,我我们们可可以以先先创创建建一一个个共共有有属属性性的的一一般般类类,根根据据该该一一般般类类再再创创建建具具有有特特殊殊属属性性的的新新类。类。2所所谓谓子子类类继继承承父父类类的的成成员员变变量量作作为为自自己己的的一一个个成成员员变变量量,就就好好像像它它们们是是在在子子类类中中直直接接声声明明一一样样,可可以以被被子子类类中中自自己己声声明明的的任任何何实实例例方方法法操作。操作。3所所谓谓子子类类继继承承父父类类的的方方法法作作为为子子类类中中的的一一个个方方法法,就就像像它它们们是是在在子子类中直接声明一样,可以被子类中自己声明的任何实例方法调用

22、。类中直接声明一样,可以被子类中自己声明的任何实例方法调用。4多多态态是是面面向向对对象象编编程程的的又又一一重重要要特特性性。子子类类可可以以体体现现多多态态,即即子子类类可可以以根根据据各各自自的的需需要要重重写写的的父父类类的的某某个个方方法法,子子类类通通过过方方法法的的重重写写可可以以把把父父类类的的状状态态和和行行为为改改变变为为自自身身的的状状态态和和行行为为。接接口口也也可可以以体体现现多多态,即不同的类在实现同一接口时,可以给出不同的实现手段。态,即不同的类在实现同一接口时,可以给出不同的实现手段。5在在使使用用多多态态设设计计程程序序时时,要要熟熟练练使使用用上上转转型型对对象象或或接接口口回回调调,以以便便体现程序设计所提倡的体现程序设计所提倡的“开开-闭闭”原则原则.2010-1-1028

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁