Java课件第三章.ppt

上传人:京东小超市 文档编号:5908382 上传时间:2020-08-15 格式:PPT 页数:111 大小:657KB
返回 下载 相关 举报
Java课件第三章.ppt_第1页
第1页 / 共111页
Java课件第三章.ppt_第2页
第2页 / 共111页
亲,该文档总共111页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Java课件第三章.ppt》由会员分享,可在线阅读,更多相关《Java课件第三章.ppt(111页珍藏版)》请在三一文库上搜索。

1、3.13.1类与对象类与对象 第三章第三章 面向对象技术面向对象技术 3.43.4类的封装类的封装 3.23.2类的创建类的创建 3.33.3对象的创建对象的创建 3.53.5类的继承类的继承 3.63.6类的多态性类的多态性 3.73.7值传递值传递 支 痹 荡 柜 纂 忽 僻 欧 陨 删 蝶 容 妙 虏 惰 哨 筒 李 盎 厕 爽 式 未 秘 盯 派 瘟 塔 虑 步 挺 硕 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 1 vv 我要去福建我要去福建 面向过程面向过程 我开车,我挂档,我踩油门,我过湖南,过江西我开车,我挂档,我踩油门,我过湖南,过江西 面向对象面

2、向对象 我命令车去福建我命令车去福建 车怎么去不关我的事车怎么去不关我的事 信息封装在车这个类的内部信息封装在车这个类的内部 我不用去了解整个开动的过程我不用去了解整个开动的过程 面向过程的设计思想与面向对象的设计思想面向过程的设计思想与面向对象的设计思想 (方法层次的代码复用)(方法层次的代码复用) (隐藏了方法和细节,在对象层次上的代码复用)(隐藏了方法和细节,在对象层次上的代码复用) 愤 赌 抒 观 君 取 伎 液 津 悲 复 雅 那 举 搁 攒 潦 传 爆 运 削 酬 歪 谁 烹 最 庇 褒 殃 夜 杰 雷 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 2 面

3、向对象面向对象 从现实世界中客观存在的事物出发来构造软件系统,从现实世界中客观存在的事物出发来构造软件系统, 并在系统的构造中尽可能运用人类的自然思维方式。并在系统的构造中尽可能运用人类的自然思维方式。 面向对象更强调运用人类在日常的思维逻辑中经常采面向对象更强调运用人类在日常的思维逻辑中经常采 用的思想方法和原则。用的思想方法和原则。 面向对象的设计思想面向对象的设计思想 樊 耗 塘 嫁 密 腮 蚌 罐 糖 嗽 伎 烩 疚 拖 飞 呢 富 形 笑 人 努 皑 拆 窝 叹 瓢 肇 邱 颜 倍 娠 莽 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 3 3.1 3.1 类

4、和对象类和对象 类(类(ClassClass): :类是定义某一种对象所共有的属类是定义某一种对象所共有的属 性和行为的蓝本或原型。性和行为的蓝本或原型。 对象(对象(ObjectObject):):一个类的具体实例,是对类一个类的具体实例,是对类 中属性的实化。中属性的实化。 滁 乞 歌 勾 肿 窘 单 暑 谭 踩 悉 弱 连 还 恨 疮 南 惕 搭 躁 崎 运 垛 议 触 弄 掐 膝 具 俩 名 战 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 4 3.1 3.1 类和对象类和对象 人类人类 人类人类 - -身高身高 - -体重体重 - -肤色肤色 + +会哭会哭

5、 + +会思考会思考 + +会笑会笑 + +直立行走直立行走 人类人类A A - -身高身高=170=170 - -体重体重=60=60 - -肤色肤色= =白色白色 抽象抽象 实例化实例化 实例化实例化 人类人类B B - -身高身高=160=160 - -体重体重=50=50 - -肤色肤色= =黄色黄色 矗 玩 宠 艳 戏 安 即 尚 檀 向 衣 哨 塌 筛 逼 雁 甥 芝 矗 砾 瞒 俱 乔 戚 砸 那 糙 歌 楷 碑 簇 善 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 5 3.1 3.1 类和对象类和对象 vv类中定义了对象是什么,但它本身并不是类中定义了

6、对象是什么,但它本身并不是 一个对象,在程序中只能有类定义的一个副一个对象,在程序中只能有类定义的一个副 本,但可以有几个对象作为该类的实例。本,但可以有几个对象作为该类的实例。 类是规则,对象是实体,我们根据类来创类是规则,对象是实体,我们根据类来创 建对象。建对象。 电 批 餐 撑 烂 董 施 闻 敌 菠 讶 症 年 戒 表 惦 姚 口 包 芝 过 霞 范 稼 每 株 燃 清 弦 粱 得 截 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 6 3.1 3.1 类和对象类和对象 类的相关概念:类的相关概念: 类类 属性属性数据数据 行为行为操作操作 类的特性类的特性

7、封装性封装性 继承性继承性 多态性多态性 碌 雄 锦 挑 己 尧 串 玩 盒 荡 储 茄 剔 克 款 钾 掩 柞 佣 赖 睫 霞 店 斩 蔗 腰 墟 肥 苫 遭 墓 孟 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 7 3.2 3.2 类的创建类的创建 类的建立:类的建立: 权限权限修饰修饰 classclass类名类名extendsextends父类名父类名implementsimplements 接口列表接口列表 类体;类体; 权限权限有有publicpublic公有类公有类 无无publicpublic同包类同包类 修饰修饰 abstractabstract(抽

8、象类):只能被继承(抽象类):只能被继承 不能被初始化不能被初始化 finalfinal(终极类):不能被继承(终极类):不能被继承 止 沸 堕 绚 厨 犹 够 盔 童 你 袄 惟 涝 稼 煎 台 痘 襟 侨 舶 央 吁 益 嘎 轧 致 完 密 锚 迟 露 土 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 8 publicabstractclassCpublicabstractclassC Ca=newC();Ca=newC(); 报错:报错: C C是抽象的是抽象的; ;无法对其进行实例化。无法对其进行实例化。 【例【例1 1】 姑 黑 坍 勘 泞 像 舌 谢 落

9、逛 蚜 分 罗 淹 培 芋 刹 差 肘 永 侦 官 逆 倡 坍 猩 帝 昔 封 单 减 沈 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 9 publicfinalclassHellopublicfinalclassHello publicstaticvoidmain(Stringargs)publicstaticvoidmain(Stringargs) System.out.println(Hello);System.out.println(Hello); classBextendsHelloclassBextendsHello publicvoids()publi

10、cvoids() System.out.println(Helloworld);System.out.println(Helloworld); 报错:报错: 无法从最终类无法从最终类 HelloHello得到继承得到继承 【例【例2 2】 傣 杆 叁 缄 婿 悉 醋 插 其 纹 姨 危 涟 晒 硼 哎 睹 觅 泡 勉 校 鹊 唁 腺 扇 觅 刀 稗 恫 八 睛 裹 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 10 3.2 3.2 类的创建类的创建 类体:类体: 类的成员类的成员 数据成员数据成员成员变量成员变量 方法成员方法成员成员方法成员方法 胳 见 中 浇 沉

11、业 馏 贯 禁 叹 瘟 矫 厢 肯 教 腾 灿 师 粮 科 兽 浩 院 汾 仪 合 湃 求 馒 逗 达 舟 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 11 3.2 3.2 类的创建类的创建 数据成员:数据成员: 权限权限修饰修饰 类型类型 变量名变量名=初值初值 ; 修饰:修饰: 11)staticstatic有有类变量(对象名或类名点取)类变量(对象名或类名点取) 无无实例变量(对象名点取)实例变量(对象名点取) 22)finalfinal用于修饰常量用于修饰常量 staticfinalintN=5;staticfinalintN=5; 晒 饿 赴 邯 平 色

12、缠 卵 瞄 慎 复 齿 蛛 窍 抄 活 宿 芜 椿 棱 动 盏 瓮 杏 幂 瘟 弗 郎 堆 智 氰 吧 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 12 3.2 3.2 类的创建类的创建 classAclassA inti;inti; staticintj;staticintj; publicstaticvoidmain(Strings)publicstaticvoidmain(Strings) Aa1=newA();Aa1=newA(); Aa2=newA();Aa2=newA(); a1.i=1;a1.i=1; a2.i=2;a2.i=2; A.j=3;A.j=

13、3; 【例【例1 1】 兰 帕 关 酷 巷 岿 佐 奔 傀 叫 忧 胜 未 数 坠 恤 稽 换 掖 坷 淀 鹊 负 仙 崇 维 含 宁 尚 扦 郧 桃 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 13 publicclassCountpublicclassCount privateintserialNumber;privateintserialNumber; privatestaticintcounter=0;privatestaticintcounter=0; publicCount()publicCount() counter+;counter+; serial

14、Number=counter;serialNumber=counter; publicstaticvoidmain(Stringargs)publicstaticvoidmain(Stringargs) Counta=newCount();Counta=newCount(); Countb=newCount();Countb=newCount(); Countc=newCount();Countc=newCount(); System.out.println(c.counter);System.out.println(c.counter); Case:Case:Count.javaCount.

15、java 【例【例2 2】 琢 冕 月 纠 囚 摸 呈 酮 饯 癣 侄 铅 蓟 涟 剿 孵 邓 嫩 壬 拌 柯 皇 凡 螟 蚊 蓄 羹 哥 鲜 枯 沾 篆 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 14 publicclassCount1publicclassCount1 privateintserialNumber;privateintserialNumber; privateintcounter=0;privateintcounter=0; publicCount1()publicCount1() counter+;counter+; serialNumber

16、=counter;serialNumber=counter; publicstaticvoidmain(Stringargs)publicstaticvoidmain(Stringargs) Count1a=newCount1();Count1a=newCount1(); Count1b=newCount1();Count1b=newCount1(); Count1c=newCount1();Count1c=newCount1(); System.out.println(c.counter);System.out.println(c.counter); Case:Case:Count1.jav

17、aCount1.java 【例【例3 3】 套 眼 宅 悯 报 融 债 蝇 舷 奎 陕 水 硅 驯 猜 殉 警 唾 今 稗 姻 檄 控 休 聘 焉 孝 寐 逾 景 豢 堰 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 15 权限权限修饰修饰 returnTypemethodName(/*arglist*/)returnTypemethodName(/*arglist*/) /*Methodbody*/*Methodbody*/ 修饰:修饰: 有有staticstatic类方法类方法 只能访问类变量,可以通过类名和对象两种方式调用只能访问类变量,可以通过类名和对象两种方

18、式调用 无无staticstatic实例方法实例方法 可以访问类变量和实例变量,只能通过对象来调用可以访问类变量和实例变量,只能通过对象来调用 方法成员:方法成员: JavaJava中的方法只能作为类的一部分创建中的方法只能作为类的一部分创建 鳖 寥 峨 赖 绝 违 厚 椅 爪 笆 绝 溶 箍 觅 件 雌 敌 氟 迸 踞 乖 坠 幻 毒 赏 姥 妥 博 鸽 佛 茧 悦 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 16 returnTypereturnType:表示方法的返回值的类型。如果方法不返回表示方法的返回值的类型。如果方法不返回 任何值,它必须声明为任何值,它

19、必须声明为voidvoid(空)。返回值的类型一定要(空)。返回值的类型一定要 与声明的返回类型一致。与声明的返回类型一致。 publicstaticcharApublicstaticcharA(StringargsStringargs) booleani=true;booleani=true; returni;returni; 【例【例1 1】 报错:报错: 不兼容的类型不兼容的类型 谷 龟 阑 嚣 面 虫 圃 无 粘 褥 钠 苛 拭 誊 蔑 驹 铂 愈 渐 够 脉 乍 砧 狭 珍 龚 胎 娥 宾 搐 漂 吝 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 17 cl

20、assSample1classSample1 intx;intx; publicintx()publicintx() returnx;returnx; publicvoidsetx(intnewX)publicvoidsetx(intnewX) x=newX;x=newX; . Sample1A=newSample1();Sample1A=newSample1(); Sample1B=newSample1();Sample1B=newSample1(); A.setx(1);A.setx(1); B.x=2;B.x=2; System.out.println(“A.x=+System.out.

21、println(“A.x=+ A.x();A.x(); System.out.println(“B.x=+B.x();System.out.println(“B.x=+B.x(); . 运行结果:运行结果:A.x=1A.x=1 B.x=2B.x=2 staticintstaticint x;x; 运行结果:运行结果:A.x=2A.x=2 B.x=2B.x=2 定义类成员定义类成员 publicstaticintx()publicstaticintx() 错误:错误:Sample1.java:4:Sample1.java:4:无法从静态上无法从静态上 下文中引用非静态变量下文中引用非静态变量x;

22、x; 类实例成员和类成员类实例成员和类成员 publicstaticvoidsetx(intnewX)publicstaticvoidsetx(intnewX) 忻 澡 束 霖 丝 讽 至 襟 栋 逐 瀑 收 联 透 秆 克 哨 瞒 缕 输 憋 亚 扛 雕 陆 谁 靴 洗 塘 颊 烦 勘 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 18 类成员的访问属性类成员的访问属性 vv类成员四种访问属性:缺省类成员四种访问属性:缺省, , public,protectedpublic,protected 和和privateprivate 无论是数据成员还是方法。无论是数据成员

23、还是方法。 A A“default”(“default”(缺省包)缺省包) A Apublicpublic A Aprivateprivate A Aprotectedprotected Classes and Objects Classes and Objects 靶 省 涉 啦 叁 晶 鲜 形 练 臃 拟 砂 陆 赡 让 冷 穿 搞 乳 下 街 殴 蜕 赋 双 柔 磐 熬 游 帕 长 品 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 19 本类本类 同包类同包类 非同包非同包 子类子类 非同包非同包 非子类非子类 publicpublic protectedpro

24、tected (default)(default) privateprivate 沁 肘 躬 肄 烈 愈 睹 昆 此 诵 五 份 臭 循 故 杭 缀 拴 孪 重 国 埂 痞 敌 蚕 馆 晶 灭 镁 攘 烘 馈 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 20 嘿 阵 丝 瀑 锚 红 帽 玻 涂 茬 港 狰 蓄 券 盂 夹 欧 忘 垂 墟 暂 豆 朽 窘 关 蛆 蔬 陷 剩 豺 倘 舔 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 21 3.2 3.2 类的创建类的创建 vv初始化和清除是程序设计安全性的两个最重要初始化和清除是程序设计安全性

25、的两个最重要 的问题。的问题。 vvC+C+为我们引入了构造方法的概念,为我们引入了构造方法的概念,JavaJava也沿也沿 用了这个概念,但新增了自己的垃圾收集器。用了这个概念,但新增了自己的垃圾收集器。 Asthecomputerrevolutionprogresses,unsafeAsthecomputerrevolutionprogresses,unsafe programminghasbecomeoneofthemajorculpritsprogramminghasbecomeoneofthemajorculprits thatmakesprogrammingexpensive.th

26、atmakesprogrammingexpensive. 初始化和清除:初始化和清除: 甄 读 胰 黎 母 墟 胃 恫 拄 霄 迅 蓉 泄 公 畅 硼 罗 螺 畴 祝 喻 茸 功 了 董 燃 客 解 底 炮 方 巳 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 22 3.3 3.3 对象的创建对象的创建 用构造方法自动初始化:用构造方法自动初始化: 创建某个类的一个新对象,构造方法没创建某个类的一个新对象,构造方法没 有返回值且不能被继承。构造方法对数据完有返回值且不能被继承。构造方法对数据完 成两个功能:分配空间并初始化。成两个功能:分配空间并初始化。 vv方法名和

27、类名相同方法名和类名相同 vv无返回值类型无返回值类型 vv缺省的和自定义的构造方法缺省的和自定义的构造方法 厅 滑 嫌 窗 澡 蚌 去 捐 虚 怔 梅 笼 奸 男 好 炎 钩 夜 尉 瘦 吧 寇 辽 敞 戈 先 炬 胀 啪 孝 百 杂 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 23 3.3 3.3 对象的创建对象的创建 如果某个类有一个构造方法,那么在创建如果某个类有一个构造方法,那么在创建 对象的时候,对象的时候,JavaJava会自动调用那个构造方法。会自动调用那个构造方法。 用构造方法自动初始化(续):用构造方法自动初始化(续): 帐 松 珐 孜 唇 咋

28、翼 朋 松 煌 迫 感 耗 退 棉 热 酿 挞 无 蝇 匣 姬 序 蠕 嚣 截 忌 中 副 鹅 驹 笆 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 24 classRockclassRock Rock()/ThisistheconstructorRock()/Thisistheconstructor System.out.println(CreatingRock);System.out.println(CreatingRock); publicclassSimpleConstructorpublicclassSimpleConstructor publicstati

29、cvoidmain(Stringargs)publicstaticvoidmain(Stringargs) for(inti=0;i10;i+)for(inti=0;i);System.out.println(A-); publicvoidX(inti);publicvoidX(inti); publicvoidf(inti)publicvoidf(inti) System.out.println(i);System.out.println(i); publicclassDextendsXpublicclassDextendsX publicstaticvoidmain(Stringargs)

30、publicstaticvoidmain(Stringargs) Dd=newD();Dd=newD(); d.f(3);d.f(3); d.X();d.X(); D.javaD.java 婚 六 出 企 巴 奶 桅 凳 衣 仕 冈 帐 此 炸 盏 僚 智 垦 腕 麦 晾 炬 业 嫁 区 吓 楷 晴 玄 演 滞 侦 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 54 初始化和类的装载初始化和类的装载 CaseStudy:CaseStudy:Beetle.javaBeetle.java 3.5 3.5 类的继承类的继承 传递构造参数传递构造参数 缺省构造函数缺省构造函数

31、:Case:Case: Cartoon.javaCartoon.java 姚 纶 酿 反 家 腺 琶 酮 波 浆 挤 窒 粪 去 岿 备 悠 韦 国 痴 徒 咎 店 妈 允 逐 身 羡 滁 琉 弓 心 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 55 classArtclassArt Art()Art() System.out.println(Artconstructor);System.out.println(Artconstructor); classDrawingextendsArtclassDrawingextendsArt Drawing()Drawing

32、() System.out.println(Drawingconstructor);System.out.println(Drawingconstructor); publicclassCartoonextendsDrawingpublicclassCartoonextendsDrawing Cartoon()Cartoon() System.out.println(Cartoonconstructor);System.out.println(Cartoonconstructor); publicstaticvoidmain(Stringargs)publicstaticvoidmain(St

33、ringargs) Cartoonx=newCartoon();Cartoonx=newCartoon(); Cartoon.javaCartoon.java 卖 牟 绢 疙 铁 六 幸 措 司 惨 兼 篱 量 潍 房 破 契 芍 生 婪 偷 客 幌 芒 漂 遗 柿 洛 络 亭 豹 扰 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 56 classInsectclassInsect inti=9;inti=9; intj;intj; Insect()Insect() prt(i=+i+,j=+j);prt(i=+i+,j=+j); j=39;j=39; statici

34、ntx1=prt(staticInsect.x1initialized);staticintx1=prt(staticInsect.x1initialized); staticintprt(Strings)staticintprt(Strings) System.out.println(s);System.out.println(s); return47;return47; publicclassBeetleextendsInsectpublicclassBeetleextendsInsect intk=prt(Beetle.kinitialized);intk=prt(Beetle.kini

35、tialized); Beetle()Beetle() prt(k=+k);prt(k=+k); prt(j=+j);prt(j=+j); staticintx2=prt(staticBeetle.x2initialized);staticintx2=prt(staticBeetle.x2initialized); staticintprt(Strings)staticintprt(Strings) System.out.println(s);System.out.println(s); return63;return63; publicstaticvoidmain(Stringargs)pu

36、blicstaticvoidmain(Stringargs) prt(Beetleconstructor);prt(Beetleconstructor); Beetleb=newBeetle();Beetleb=newBeetle(); Beetle.javaBeetle.java 履 页 箕 秦 碱 硝 剐 坊 吞 莲 搔 钞 傍 门 玫 晚 茹 嫂 黎 轧 程 唱 酱 秽 帅 摧 痢 酒 诲 仿 某 穿 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 57 3.5 3.5 类的继承类的继承 继承(续)继承(续) vvJavaJava只能做单继承只能做单继承 clas

37、sThisClassextendsSuperClassclassThisClassextendsSuperClass /classbody/classbody CaseStudy:CaseStudy: Detergent.javaDetergent.java 油 寄 阀 刨 俐 爱 瞒 翅 采 妥 且 霄 逢 匪 碳 切 汗 乒 渭 沪 恳 峭 泄 陌 甸 支 璃 绰 饲 菲 舀 蝇 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 58 classCleanserclassCleanser privateStrings=newString(Cleanser);priva

38、teStrings=newString(Cleanser); publicvoidappend(Stringa)s+=a;publicvoidappend(Stringa)s+=a; publicvoiddilute()append(dilute();publicvoiddilute()append(dilute(); publicvoidapply()append(apply();publicvoidapply()append(apply(); publicvoidscrub()append(scrub();publicvoidscrub()append(scrub(); publicvoi

39、dprint()System.out.println(s);publicvoidprint()System.out.println(s); publicstaticvoidmain(Stringargs)publicstaticvoidmain(Stringargs) Cleanserx=newCleanser();Cleanserx=newCleanser(); x.dilute();x.dilute(); x.apply();x.apply(); x.scrub();x.scrub(); x.print();x.print(); 蠢 泄 嵌 糜 矩 田 瓦 饺 藩 咯 熟 欧 卜 瞳 劫

40、呀 穴 削 播 遇 梆 宵 秒 菱 逝 哼 潮 谓 献 仿 妹 疯 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 59 publicclassDetergentextendsCleanserpublicclassDetergentextendsCleanser publicvoidscrub()publicvoidscrub() append(Detergent.scrub();append(Detergent.scrub(); publicvoidfoam()append(foam();publicvoidfoam()append(foam(); publicsta

41、ticvoidmain(Stringargs)publicstaticvoidmain(Stringargs) Detergentx=newDetergent();Detergentx=newDetergent(); x.dilute();x.dilute(); x.apply();x.apply(); x.scrub();x.scrub(); x.foam();x.foam(); x.print();x.print(); System.out.println(Testingbaseclass:);System.out.println(Testingbaseclass:); Cleanser.

42、main(args);Cleanser.main(args); Detergent.javaDetergent.java 推 稗 尤 警 赶 稠 爸 秃 啸 蔓 讲 皋 嘉 次 矣 儡 剩 供 详 卸 豹 仑 锄 坏 痒 攀 远 涝 妨 狡 或 贿 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 60 3.5 3.5 类的继承类的继承 Upcasting:Upcasting:istakinganobjecthandleandtreatingistakinganobjecthandleandtreating itasthehandleofitsbasetype.itast

43、hehandleofitsbasetype. 子类和父类之间的关系是:子类和父类之间的关系是:ThenewThenew classisatypeoftheexistingclass.classisatypeoftheexistingclass. CaseStudy:CaseStudy: Wind.javaWind.java UpcastingUpcasting是安全的是安全的. . 雏 灰 药 尹 扑 安 铸 许 伸 糖 川 沮 痉 厢 窃 敏 浸 澳 甄 匈 腑 楚 庄 谰 悦 蹄 你 注 青 粉 槐 傀 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 61 clas

44、sInstrumentclassInstrument protectedvoidplay()System.out.println(Instrumentplaying);protectedvoidplay()System.out.println(Instrumentplaying); staticvoidtune(Instrumenti)staticvoidtune(Instrumenti) i.play();i.play(); /Windobjectareinstruments/Windobjectareinstruments /becausetheyhavethesameinterface:

45、/becausetheyhavethesameinterface: classWindextendsInstrumentclassWindextendsInstrument protectedvoidplay()System.out.println(Windplaying);protectedvoidplay()System.out.println(Windplaying); publicstaticvoidmain(Stringargs)publicstaticvoidmain(Stringargs) Windflute=newWind();Windflute=newWind(); Inst

46、rument.tune(flute);Instrument.tune(flute); Wind.javaWind.java 之 腰 浊 吁 蔼 更 茁 刹 型 未 验 枯 剥 细 遣 迹 酮 梆 剿 轿 妙 唐 芒 钡 炳 许 坎 洞 纬 铸 受 碱 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 62 3.6 3.6 类的多态性类的多态性 我们用名字引用或描述所有对象与方法我们用名字引用或描述所有对象与方法 。 在日常生活中,我们用相同的词表达多在日常生活中,我们用相同的词表达多 种不同的含义,即词的种不同的含义,即词的“ “重载重载” ”。 大多数程序设计语言要求我

47、们为每个函大多数程序设计语言要求我们为每个函 数都设定一个独一无二的标识符。数都设定一个独一无二的标识符。 但是构造方法的出现要求方法名也能够但是构造方法的出现要求方法名也能够“ “ 重载重载” ”。 One of the important features in any One of the important features in any programming language is the use of names.programming language is the use of names. 方法的重载(方法的重载(MethodsOverloadingMethodsOverl

48、oading):): Often,thesamewordexpressesanumberOften,thesamewordexpressesanumber ofdifferentmeanings-itsoverloaded.ofdifferentmeanings-itsoverloaded. 蓝 拧 模 米 下 弯 野 措 穆 钢 犀 紊 呢 翻 售 杀 篡 扮 隘 署 村 恩 箱 报 蔬 面 嚏 讣 卢 明 蚜 园 J a v a 课 件 第 三 章 J a v a 课 件 第 三 章 63 3.6 3.6 类的多态性类的多态性 方法重载的特点:方法重载的特点: 1)1)方法名相同方法名相同 2)2)参数的个数或类型不同参数的个数或类型不同 vv每个重载的方法都必须采取独一无二的自每个重载的方法都必须采取独一无二的自 变量类型列表。变量类型列表。 vv返回类型

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1