Java程序设计教学做一体化教程第5章继承与接口课件_第1页
Java程序设计教学做一体化教程第5章继承与接口课件_第2页
Java程序设计教学做一体化教程第5章继承与接口课件_第3页
Java程序设计教学做一体化教程第5章继承与接口课件_第4页
Java程序设计教学做一体化教程第5章继承与接口课件_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、注意:开始用功了!狱咙姨奥缅硅鼎菩寄葬弦厄俞速拾恍知扯身唆蹋釜遂滑酿籍恤久姓潮稳司Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第1页,共53页。配合例子源代码一起使用Power point 制作:耿祥义 张跃平继承与接口Java程序设计教学做一体化教程 第5章分默价炼工子谆佐绸礁锋团狡锑挣诞慢塔结胚筒晚脯遂药像右笔熏霄澡焕Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第2页,共53页。主要内容灶础叁桥监摹镑洞条叙春壶崭抖咱望悠耘扳敷门诺哎流肿涪炙篙撇猜衙免Java程序设计教学做一体化教程

2、第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第3页,共53页。5.1 子类 5.1.1核心知识 1子类的定义 在类的声明中,通过使用关键字extends来定义一个类的子类,格式如下: class 子类名 extends 父类名 例如: class Student extends People 把Student类定义为People类的子类、People类是Student类的父类(超类)。2子类的继承性 如果子类与父类在同一个包中,那么,子类自然地继承了父类中不是private的成员变量作为自己的成员变量,并且也自然地继承了父类中不是private的方法作为自己的方法,继

3、承的成员变量或方法的访问权限保持不变。 当子类与父类不在同一个包中时,子类只继承父类中的protected和public访问权限的成员变量作为子类的成员变量;同样,子类只继承父类中的protected和public访问权限的方法作为子类的方法。伶惜挚倚刷卒鸡定乐稠旬栓弯困脱椿锦竖按党猪码在茬傀未紧媒扁焦造习Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第4页,共53页。 5.1.2 能力目标 能定义子类,并知道子类的那些成员变量或方法是从父类继承下来的。 栽促瓣涪跳惧亭贼蟹焕厘吧泛蓄绅爆燥惶诊员静迹聪杂罕刨朝怀培梨帜框Java程序设计教学

4、做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第5页,共53页。 5.1.3 任务驱动 将下列Application.5_1java中的【代码】替换为程序代码。 People.java Student.java UniverStudent.java Application5_1.java程序运行效果如图5.1。 哨烛伞奈确酷城梧膊禽挚河肮挝艇惭乎踪过少娘这颊玫割熬封簿旧夷梗驮Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第6页,共53页。 任务小结 (1)继承是一种由已有的类创建新类的机制。可以先定义一

5、个共有属性的一般类,根据该一般类再定义具有特殊属性的子类,子类继承一般类的属性和行为,并根据需要增加它自己的新的属性和行为,子类可以让程序不必一切“从头做起”。 (2) instanceof运算符是Java独有的双目运算符,其左面的操作元是对象,右面的操作元是类,当左面的操作元是右面的类或其子类所创建的对象时,instanceof运算的结果是true,否则是false。 (3)如果一个类是另一个类的子类,那么UML通过使用一个实线连接两个类的UML图来表示二者之间的继承关系,实线的起始端是子类的UML图,终点端是父类的UML图,但终点端使用一个空心的三角形表示实线的结束,如图5.2。 夫啦拉哩

6、讫惮空顾斡壶辨秸厌豁锤疚撑氖到烯盔纬弃噪钙茹雾氖篷炬役志Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第7页,共53页。 5.1.4 实践环节 Application5_2.java 铬芋葬挺跺硕枕远厘纱绵脯园狰铜枕捂旷直宿宰序絮扯屁蔼骂烙髓宙碗迹Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第8页,共53页。5.2 成员变量的隐藏和方法重写 5.2.1 核心知识1隐藏成员变量 如果子类声明的成员的变量的名字和从父类继承下来的成员变量的名字相同(声明的类型可以不同),在这种情况下,子

7、类就会隐藏掉所继承的成员变量。 子类一旦隐藏了继承的成员变量,那么子类对象以及子类自己定义的方法操作与父类同名的成员变量时,就是操作子类重新声明的这个成员变量。2方法重写(Override) 如果子类可以继承父类的某个方法,那么子类就有权利重写这个方法。 逾燎赖泊吏眩缩冬蔬随西帐缆钥音话奔拥忿奖照纤菜券牡雀丹例牺爪兼揭Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第9页,共53页。 5.2.2 能力目标 子类通过重写方法,改变继承的行为 。 勺耘列圭剔喳给地话脸碌列疼抿仇疏炽罚滚糠咀牲粉雪旱所金萌等遂澳蜀Java程序设计教学做一体化教程第

8、5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第10页,共53页。 5.2.3 任务驱动将下列University.java和ImportantUniversity.java中的【代码】替换为程序代码。Application5_3.java 程序运行效果如图5.3。奢薄标纪桶奴篆绑挝蠕奢袒莹曰咋归浊砌憎稳抄众号僚椅帜胺她甄贷窑培Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第11页,共53页。 任务 小结重写方法既可以操作继承的成员变量、调用继承的方法,也可以操作子类新声明的成员变量、调用新定义的其他方法,但无法操作

9、被子类隐藏的成员变量和方法。需要特别注意的是, 子类在重写父类的方法时,不可以降低方法的访问权限(访问权限从高到低的排列顺序是:public、protected、友好的、private .蚤嫡譬逐筒尚双跋梢浪瞅捂呜装须匹羌诵后虚怒深劝活挖嚼醛铅捌悬撮冰Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第12页,共53页。 5.2.4 实践环节 Application5_4.java 萧鲁愧憾饼槛伊虎充具答靳捡复根垣宏躇刘姓央参畔事蛮剩赁曾叛又肖蔼Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第

10、 页第13页,共53页。5.3 super关键字 5.3.1 核心知识_11用super操作被隐藏的成员变量和方法 子类一旦隐藏了继承的成员变量,那么子类创建的对象就不再拥有该变量,该变量将归关键字super所拥有,同样子类一旦隐藏了继承的方法,那么子类创建的对象就不能调用被隐藏的方法,该方法的调用由关键字super负责。2使用super调用父类的构造方法 当用子类的构造方法创建一个子类的对象时,子类的构造方法总是先调用父类的某个构造方法,也就是说,如果子类的构造方法没有明显地指明使用父类的哪个构造方法,子类就调用父类的不带参数的构造方法。 子类在其构造方法中需使用super来调用父类的构造方

11、法,而且super必须是子类构造方法中的头一条语句,即如果在子类的构造方法中,没有明显地写出super关键字来调用父类的某个构造方法,那么默认地有: super();桩已瞳脚未畜翘涧掀闰朵凉搁绎肛羹躁祝尉蒋医翻百厌驰佰享斯挖畸剐侗Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第14页,共53页。 5.3.1 核心知识 _2class Student int number; Student() Student(int number) this.number = number; class UniverStudent extends Stud

12、ent boolean isMerried; UniverStudent(int number,boolean b) super(number); /调用父类的构造方法Student(int number) isMerried = b; 殴矢帆极恢孰仇恼羹阻颐葫苔姓馅他瘩啦垒办睁鹤郑滦螟误件寻颁沫艰竭Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第15页,共53页。 5.3.2 能力目标 在子类中使用super关键字调用被隐藏(覆盖)的方法 。钻诅媒纪彼醉偶观詹唾秦俯冲化芭悦怠党去戈加瓶蓄躺距哎巫桥若髓隘逻Java程序设计教学做一体化教程

13、第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第16页,共53页。 5.3.3 任务驱动将下列 BeijingWaterUser.java中的【代码】替换为程序代码。WaterUser.java 和 Application5_5.java 程序运行效果如图5.4。袍驮叮磅做互棒汉膀狭抉仍犁擎剿席橱洗潮涣虱察挥俱壬彤精秽安灯梁埔Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第17页,共53页。 任务 小结(1)当super调用被隐藏的方法时,该方法中出现的成员变量就是被子类隐藏的成员变量或继承的成员变量。(2)如果类

14、里定义了一个或多个构造方法,那么Java不提供默认的构造方法(不带参数的构造方法),因此,当在父类中定义多个构造方法时,应当包括一个不带参数的构造方法,以防子类省略super时出现错误。翻知处凤鞘史享后眶傣誊消全孵斌郧窃券坪日滚气力哟愿霸弟性尽摸一香Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第18页,共53页。 5.3.4 实践环节 Application5_6.java鱼硕量蹲装寅脆肘墙柴鸯尸胺粪大帽琴坦椒脖尾迎掉部晤泞送楔舱复滴芦Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页

15、第19页,共53页。5.4 final关键字 5.4.1 核心知识 final关键字可以修饰类、成员变量和方法中的局部变量。1final类 可以使用final将类声明为final类。final类不能被继承,即不能有子类。 final class A 2final方法 如果用final修饰父类中的一个方法,那么这个方法不允许子类重写。3常量 如果成员变量或局部变量被修饰为final的,就是常量。酸拘咒韭刽尺杂赚否占轿毛羡鸽梆被屉率恼兢虏雾刊堆譬被瓢纬腹土恼狡Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第20页,共53页。 5.4.2 能力

16、目标 掌握final关键字的用法 。异宅痴熔聂携踢蛙箩锅墟驮肮垢选碰夷种弗窿缕线聚迷弄宇狡偏才搭矫舷Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第21页,共53页。 5.4.3 任务驱动将Circle.java中的【代码】替换为程序代码。 Application5_7.java 程序运行效果如图5.5。决焕贪狼苟氯枝钙厢体淬撬叙庙折湿燃际籍衙宋篇寨盯枫陛失哭金膨寿萝Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第22页,共53页。 任务 小结 final参数可以接受所传递值,但在方

17、法内不容许对final参数进行写操作,即参数得到值之后,就按常量对待final参数 泼朽舞草崖槽低妮宋煞洽劣愚赐赛栓冰胖轿荷善霞伴鸟紧繁椎苍曰惟少斌Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第23页,共53页。 5.4.4 实践环节 A.java庶浅怔即钩遣腐沫倒典涎踌育搔贪悉诀丧毒阅屈贞沈借诬张驴钞译见几莽Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第24页,共53页。5.5 对象的上转型对象 5.5.1 核心知识 1上转型对象 假设People类是American类的父类,

18、当用子类创建一个对象,并把这个对象的引用放到父类的对象中时,比如: 2上转型对象的特性1)上转型对象不能操作子类新增的成员变量;不能调用子类新增的方法。2)上转型对象可以访问子类继承或隐藏的成员变量,也可以调用子类继承的方法或子类重写的实例方法。People person;person = new American ();或People person;American anAmerican = new American ();person = anAmerican;这时,称对象person是对象anAmerican的上转型对象。勒呀盘诛捐殿凭发鼠花概扦盐杜柞忱皿晶保菇双贬泛普燃既秩尧诅氓蛔哑J

19、ava程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第25页,共53页。 5.5.2 能力目标 掌握怎样使用上转型对象调用子类重写的实例方法 遂结斋周升揩锦颜在毋赊睛甭掣懦蔼很酌贼刃监锡版狮征滇协危粱守颁乘Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第26页,共53页。 5.5.3 任务驱动将下列Application5_8.java中的【代码】替换为程序代码。程序运行效果如图5.7。People.java ChinaPeople.java AmericanPeople.java 旨雁铀桑

20、赘奎优被恕架部画狱州袱觅蔷板喳废猾嗽侮丹鼓寓浪枯奏养摸宣Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第27页,共53页。 任务 小结(1)在Aplication类的main方法中,不能让上转型对象people调用speakChinese()或void speakEnglish(),因为这两个方法不是子类继承或重写的方法,而是子类新增的方法。(2) 如果子类重写了父类的静态方法(static修饰的方法),那么子类对象的上转型对象不能调用子类重写的静态方法,只能调用父类的静态方法。 详恐揪垮杨菌社京养鲤堤翻阅统蹈凹煎吸乐树装坟呈锥芥痴曲丫歉

21、绳遣戎Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第28页,共53页。 5.5.4 实践环节 上机调试下列代码,特别注意程序的输出结果。 Application5_9.java 笑肾啄烁何漾悔蔽肯遗妒塘铀刊锗巾芹韦烯葫拆吉大饼赴醛降滥窘坝坝钾Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第29页,共53页。5.6 多态和抽象类 5.6.1 核心知识1多态性 多态性就是指父类的某个方法被其子类重写时,可以各自产生自己的功能行为,也就是说一个类的不同子类在重写方法时可以各自产生适合其子

22、类对象的行为。2用上转型对象体现多态 上转型对象在调用子类重写的方法时就可能具有多种形态,因为不同的子类在重写父类的方法时可能产生不同的行为。3抽象类及抽象方法 用关键字abstract修饰的类称为abstract类(抽象类)。如: abstract class A 用关键字abstract修饰的方法称为abstract方法(抽象方法). 1)和普通类相比,abstract类中可以有abstract方法,也可以有非abstract方法。2)对于abstract类,不能使用new运算符创建该类的对象。如果一个非抽象类是某个抽象类的子类,那么它必须重写父类的抽象方法,给出方法体。3)可以使用abs

23、tract类声明对象,尽管不能使用new运算符创建该对象,但该对象可以成为其子类对象的上转型对象,那么该对象就可以调用子类重写的方法丹窟选嘶滚骄第梗狼臻哺寐概讼充昭匿支媚荡吕讶营圭昌促钦鹏脾滤匠敢Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第30页,共53页。 5.6.2 能力目标 掌握用抽象类的对象做上转型对象,并体现子类的多态 。组先时扭哄讳捆陋跌俩抢喳乏耐葬踊悼璃碱臭篓简喉眯怕计潍蛰燥关圣地Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第31页,共53页。 5.6.3 任务驱

24、动将下列Application5_10.java中的【代码】替换为程序代码。Animal.java Dog.java Cat.java 程序运行效果如图5.8。尧签惹芯言裳哎四掐罩疚蘑快短窍盖宙案钙赢拧频萌绅雕班凑该淖隧估汤Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第32页,共53页。 任务 小结 当用上转型对象调用子类重写的方法时,具有很好通用性,因为程序不必关心子类的具体对象的名字,就可以让上转型对象调用子类体重写的方法。不允许使用static修饰abstract方法,即abstract方法必须是实例方法。不允许使用final修饰

25、abstract类,即要允许abstract类有子类 降苹笔侗措懊约劈毒兼糜慌妮蛙抬拥欢庸衣秀甜瓶硼碌插渗包译瞻纹搜陇Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第33页,共53页。 5.6.4 实践环节 上机调试下列代码,注意对象car是哪些对象的上转性对象,并怎样体现多态的 。Application5_11.java屿翅篮错嫩避贮燕芬驱傈肪京结乔安恳伶舞嘘阮榔斩喧绩赴瘴萨乳冀丈釜Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第34页,共53页。5.7 接口与实现 5.7.1 核

26、心知识_11接口的定义 使用关键字interface来定义一个接口。接口的定义和类的定义很相似,分为接口的声明和接口体,例如: interface Printable public final static int MAX=100; public abstract void add(); public abstract float sum(float x ,float y); 接口使用关键字interface来声明自己是一个接口,格式: interface 接口的名字 接口体中包含常量的声明和抽象方法两部分。 接口体中所有的常量的访问权限一定都是public,而且是static常量。 所有的抽

27、象方法的访问权限一定都是public,如: interface Printable int MAX = 100; /等价于public final static int MAX=100; void add(); /等价于public abstract void add(); float sum(float x ,float y); /等价于public abstract float sum(float x ,float y); 锐故弄匀天控澎凯耗狙佛刽孕叠列驯瓤熄酌赖鹅廉储快坎闭测澡嚷磨著执Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第

28、35页,共53页。 5.7.1 核心知识 _22实现接口 接口由类来实现,即由类来重写接口中的方法。一个类可以在类声明中使用关键字implements声明实现一个或多个接口。如果类实现多个接口,用逗号隔开接口名,如A类实现Printable和Addable接口: class A implements Printable,Addable 如果一个非抽象类实现了某个接口,那么这个类必须重写这个接口中的所有方法。 需要注意的是,由于接口中的方法一定是public abstract方法,所以类在重写接口方法时不仅要去掉abstract修饰符、给出方法体,而且方法的访问权限一定要明显地用public来修

29、饰。欺陷考糖侯爵痉辨为凛当并露煤豌爪锰橇碳秘昨豁砒引蛋错独呐畦钒兴嗽Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第36页,共53页。 5.7.2 能力目标 握类怎样实现接口 。执椎敖遏之九开硝蠢裙录傣坤论颐憾逊扶悲些碑区揭拘芹攒间瓦川腰延辟Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第37页,共53页。 5.7.3 任务驱动将下列Application5_12.java 中的【代码】替换为程序代码 程序运行效果如图5.9迎漂则尹叛箍瘫乞庶倍鳞垣囊喧碱合待背执倾晰挫们著您捡秒豆故膳

30、馋摄Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第38页,共53页。 任务 小结接口的思想在于它可以要求某些类有相同名称的方法,但方法的具体内容可以不同,即要求这些类实现接口,以保证这些类一定有接口中所声明的方法(即所谓的方法绑定)。接口在要求一些类有相同名称的方法的同时,并不强迫这些类具有相同的父类。烘镐得油坷孪莫瑟企撩牌翱殃钟撇神黄佩贩袭诧茂嫁铜性斜禄否汪勇烂猿Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第39页,共53页。 5.7.4 实践环节 粟番契岳辰尖责装憋汀咎竣羔捉

31、臼外曰裸论酋晌朝治蒸鱼颊肾卸副域载踪Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第40页,共53页。5.8 接口回调 5.8.1 核心知识 1接口变量 接口也是Java中一种重要数据类型,用接口声明的变量称为接口变量。 接口变量中可以存放实现该接口的类的实例的引用,即存放对象的引用。 接口回调就是指:可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中,那么该接口变量就可以调用被类实现的接口方法。实际上,当接口变量调用被类实现的接口方法时,就是通知相应的对象调用这个方法。2接口与多态 把实现接口的类的实例的引用赋值给接口变量

32、后,该接口变量就可以回调类重写的接口方法。 由接口产生的多态就是指不同的类在实现同一个接口时可能具有不同的实现方式,那么接口变量在回调接口方法时就可能具有多种形态。丫况殊碧秋实痈乱鞠抵劝园植销纯弦圭侄披缴递妇始木晦薪极锗赖痔渊胶Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第41页,共53页。 5.8.2 能力目标 使用接口变量调用类实现的接口方法,即掌握接口回调技术 。杯赚环啄朵龙肇眠送仕奈宫霞锌绑磨机阂寄饱饲地塔填图鲜吏驼则烬擂考Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第4

33、2页,共53页。 5.8.3 任务驱动将下列Application5_13.java中的【代码】替换为程序代码。Sound.java SoundMachine.java Piano.java Violin.java 程序运行效果如图5.11。 概漱见炯邻犀捷领啤卿厂善搞仁饱桑榜考藉蔫瘴绊窜负烈狼侧腑胃馅谨古Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第43页,共53页。 任务 小结 (1)使用接口可以让程序更加容易维护和扩展,比如,在任务模版中,再增加实现Sound接口的类时,不需要修改SoundMachine类的代码。(2)在设计程序

34、时应当根据具体的情况来确定是使用抽象类还是接口。足次函吗蔑腺岔蛔寐把傻拙使浓挣愧观衙逆昂仓缘淤铲值逮藻烷侮瑶扰再Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第44页,共53页。 5.8.4 实践环节 上机调试下列程序,注意接口回调是怎样体现多态的。 Application5_14.java 篱旧昨茬芥搂昏隶焚淬仙葱应孺樱枢示檄馆榨赌时会隆疥孝捍旋蜀迄季医Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第45页,共53页。5.9 匿名类 5.9.1 核心知识_1 1内部类 可以在一个类

35、中再定义另一个类,这样的类称作当前类中的内部类,而包含内部类的类称为内部类的外嵌类。内部类的外嵌类的成员变量在内部类中仍然有效,内部类中的方法也可以调用外嵌类中的方法。RedCowForm.java 内部类的类体中不可以声明类变量和类方法。内部类仅供它的外嵌类使用,其他类不可以用某个类的内部类声明对象。class RedCowForm RedCow cow; /内部类声明对象cow RedCowForm() cow = new RedCow(150,112); public void showCowMess() cow.speak(); class RedCow /内部类的声明 String

36、cowName = 红牛; int height,weight,price; RedCow(int h,int w) height = h; weight = w; void speak() System.out.println(高:+height+cm 重:+weight); /内部类结束酬例纸杏骚牌硒钩琴揩篙克渺屡尝宛穆诚幌饱趾敬嗜镐嚷句真成窥冒讶淋Java程序设计教学做一体化教程第5章继承与接口Java程序设计教学做一体化教程第5章继承与接口第 页第46页,共53页。 5.9.1 核心知识 _22匿名类与子类 Java允许直接使用一个类的子类的类体创建一个子类对象。例如,假设Bank是一个类,那么下列代码就是用Bank的一个子类创建对象: new Bank() 匿名类的类体 ; 使用匿名类时,必然是在某个类中直接用匿名类创建对象,因此匿名类一定是内部类。 如果某个方法的参数是Bank类型,那么经常使用匿名类创建一个对象,并将对象的引用传递给方法的参数。例如,对于 void showMoney(Bank bank)其中的参数bank是Bank类型,那么在调用showMoney时,可以向showMoney方法的参数bank传递一个匿名类(Ba

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论