华南农业大学:《面向对象的程序设计》 第九章 多态性

大串 South China Agr icultur al University 第九章多态性
第九章 多态性

主要类容: ◆91延迟绑定 ◆9.2由继承实现多态性 ◆93利用接口是想多态性 ◆94排序 ◆9.5搜索 ◆9.6多态性设计 ◆97事件处理 ◆98文件选择对话框 ◆9.9颜色选择对话框 ◆9.10滑动条
主要类容: ◆ 9.1 延迟绑定 ◆ 9.2 由继承实现多态性 ◆ 9.3 利用接口是想多态性 ◆ 9.4 排序 ◆ 9.5 搜索 ◆ 9.6 多态性设计 ◆ 9.7 事件处理 ◆ 9.8 文件选择对话框 ◆ 9.9 颜色选择对话框 ◆ 9.10 滑动条

91延迟绑定 ■通常一个引用变量的类型要与其引用的对象的类 相匹配。 ChessPiece bishop; ■引用变量的类型和该引用变量指向的对象必须是 菲容的,但不必完全相同。 ■多态性可以理解为多种形式,一个多态性引用是 可以在不同时间指向不同类型对象的引用变量。 ■利用多态性调用的方法能够由一个调用改变为另 个调用
◼通常一个引用变量的类型要与其引用的对象的类 相匹配。 ChessPiece bishop; ◼ 引用变量的类型和该引用变量指向的对象必须是 兼容的,但不必完全相同。 ◼多态性可以理解为多种形式,一个多态性引用是 可以在不同时间指向不同类型对象的引用变量。 ◼利用多态性调用的方法能够由一个调用改变为另 一个调用。 9.1 延迟绑定

■如下代码: obj.do工t(); ■如果obj引用是多态性,可以在不同时刻指向不同类型的对象。 在一个程序执行的某个时刻可能会产生一个请求事件,要求执行 某段代码来完成一个方法调用,这种请求事件称为一个方法调用 与一个方法定义的绑定。 ■如果绑定发生在编译阶段,那么每次引用方法的代码都相同。 ■对于多态性引用,绑定要延迟到程序运行时才能执行,延迟的请 求事件称为延迟绑定或者动态绑定 延迟绑定能给程序设计带来交大的灵活性。 ■在java中用继承方式和接口方式来建立多态性引用
◼ 如下代码: obj.doIt(); ◼ 如果obj引用是多态性,可以在不同时刻指向不同类型的对象。 ◼ 在一个程序执行的某个时刻可能会产生一个请求事件,要求执行 某段代码来完成一个方法调用,这种请求事件称为一个方法调用 与一个方法定义的绑定。 ◼ 如果绑定发生在编译阶段,那么每次引用方法的代码都相同。 ◼ 对于多态性引用,绑定要延迟到程序运行时才能执行,延迟的请 求事件称为延迟绑定或者动态绑定。 ◼ 延迟绑定能给程序设计带来交大的灵活性。 ◼ 在java中用继承方式和接口方式来建立多态性引用

92由继承实现多态性 口当用类声明了一个引用变量时,该变量可以指向 该类的任何一个对象,此外还可以指向由继承关 系的任何对象。 比如:类ho1ida派生出一个类 christmas, 个 holiday类引用能够指向一个 christmas类变 Holiday Holiday day i day new Chris tmas o )i Christmas
5 9.2 由继承实现多态性 ◼当用类声明了一个引用变量时,该变量可以指向 该类的任何一个对象,此外还可以指向由继承关 系的任何对象。 ◼比如:类holiday派生出一个类christmas,一 个holiday类引用能够指向一个christmas类变 量。 Holiday day; day = new Christmas(); Holiday Christmas

References and inheritance ■也可以将父类对象赋给一个子类引用,但是需要 进行类型转换。一般不常用,可能会引起问题。 个 object引用可以指向任何对象。因为所有类 都是由 object类派生的
6 References and Inheritance ◼也可以将父类对象赋给一个子类引用,但是需要 进行类型转换。一般不常用,可能会引起问题。 ◼一个object引用可以指向任何对象。因为所有类 都是由object类派生的

■被引用对象类型决定被调用方法,而不是引用类型。 ■如果 Holiday类有一个方法叫 celebrate Christmas类重载了这个方法。 Now consider the following invocation: day. celebrate o)i
◼ 被引用对象类型决定被调用方法,而不是引用类型。 ◼ 如果 Holiday 类有一个方法叫 celebrate, Christmas 类重载了这个方法。 ◼ Now consider the following invocation: day.celebrate();

Polymorphism via Inheritance ■分析下列类层次结构: StaffMember Volunteer Employee Executive Hourly
Polymorphism via Inheritance ◼ 分析下列 类层次结构: StaffMember Executive Hourly Volunteer Employee

Polymorphism via Inheritance Now let's look at an example that pays a set of diverse employees using a polymorphic method See Firm iava(page 317) See Staff, iava(page 319) See StaffMember, iava(page 320) See volunteer, iava(page 321) See Employee iava(page 322) See Executive iava(page 323) See Hourly, iava(page 324)
Polymorphism via Inheritance ◼ Now let's look at an example that pays a set of diverse employees using a polymorphic method • See Firm.java (page 317) • See Staff.java (page 319) • See StaffMember.java (page 320) • See Volunteer.java (page 321) • See Employee.java (page 322) • See Executive.java (page 323) • See Hourly.java (page 324)

93利用接口实现多态性 ■接口名可以用作声明对象引用变量的类型。 public interface Speaker i public void speak Speaker current public boid announce( String str) 个接口引用变量可以指向任何实现该接口的实现类的 对象。实现类于其所实现的接口关系如同子类于父类的关 系,实现类与其接口之间有“是一种”关系 ■执行代码时实际调用的方法取决于调用发生时候接口引 用所指向的对象的类型。 current speak o)i
9.3 利用接口实现多态性 ◼接口名可以用作声明对象引用变量的类型。 public interface Speaker { public void speak(); public boid announce (String str); } ◼Speaker current; ◼ 一个接口引用变量可以指向任何实现该接口的实现类的 对象。实现类于其所实现的接口关系如同子类于父类的关 系,实现类与其接口之间有“是一种”关系。 ◼ 执行代码时实际调用的方法取决于调用发生时候接口引 用所指向的对象的类型。 current.speak();
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 兰州工业学院:《计算机网络与通信 Computer Network & Communication》课程教学资源(PPT课件讲稿)第八章网络安全技术 Safety Technology of Network.ppt
- 兰州工业学院:《计算机网络与通信 Computer Network & Communication》课程教学资源(PPT课件讲稿)第七章 Windows NT.ppt
- 兰州工业学院:《计算机网络与通信 Computer Network & Communication》课程教学资源(PPT课件讲稿)第六章 网络技术及组网技术 TCP/IP.ppt
- 兰州工业学院:《计算机网络与通信 Computer Network & Communication》课程教学资源(PPT课件讲稿)第五章 Repeaters(中继器)Network Devices & Interconnection.ppt
- 兰州工业学院:《计算机网络与通信 Computer Network & Communication》课程教学资源(PPT课件讲稿)第四章 局域网技术 Local Area Network Technology.ppt
- 兰州工业学院:《计算机网络与通信 Computer Network & Communication》课程教学资源(PPT课件讲稿)第三章 计算机网络体系结构 Architecture of Computer Network.ppt
- 兰州工业学院:《计算机网络与通信 Computer Network & Communication》课程教学资源(PPT课件讲稿)第二章 数据通信技术 Data Communication Basics.ppt
- 兰州工业学院:《计算机网络与通信 Computer Network & Communication》课程教学资源(PPT课件讲稿)第一章 计算机网络概述 Introduction of Computer Network.ppt
- 乐山师范学院:《计算机程序设计》 电子课件.ppt
- 华中科技大学:《计算机算法基础》 第四章 动态规划.ppt
- 华中科技大学:《计算机算法基础》 第三章 贪心方法.ppt
- 华中科技大学:《计算机算法基础》 复习要点.ppt
- 华中科技大学:《计算机算法基础》 第一章 习题.ppt
- 华中科技大学:《计算机算法基础》 习题3.1.doc
- 华中科技大学:《计算机算法基础》 CHAPTER 11 Aggregate Demand l.ppt
- 华中科技大学:《计算机算法基础》 CHAPTER 10 Aggregate Demand I.ppt
- 华中科技大学:《计算机算法基础》 算法程序设计.doc
- 华中科技大学:《计算机算法基础》 第二章 分治法(Divide and Conquer)——“分”而治之.ppt
- 华中科技大学:《计算机算法基础》第一章 导引与基本数据结构(王多强).ppt
- 《微机常用外设》 第三章 非击打式印刷机.ppt
- 华南农业大学:《面向对象的程序设计》 第一章 Hello Java.ppt
- 华南农业大学:《面向对象的程序设计》 第二章 数据与表达式.ppt
- 华南农业大学:《面向对象的程序设计》 第三章 使用类和对象.ppt
- 华南农业大学:《面向对象的程序设计》 第四章 编写类.ppt
- 华南农业大学:《面向对象的程序设计》 第五章 条件和循环语句.ppt
- 华南农业大学:《面向对象的程序设计》 第六章 面向对象设计.ppt
- 华南农业大学:《面向对象的程序设计》 第七章 数组.ppt
- 华南农业大学:《面向对象的程序设计》 第八章 继承.ppt
- 《计算机原理》 第三章(3-6) 模型机设计.ppt
- 《计算机原理》 第四章 存储子系统.ppt
- 《计算机原理》 第四章(4-2) 半导体存储器.ppt
- 《计算机原理》 第四章(4-3) 磁表面存储器.ppt
- 《计算机原理》 第五章 输入/输出系统.ppt
- 《计算机原理》 第五章(5-2) 总线.ppt
- 《计算机原理》 第五章(5-3) 中断方式及接口.ppt
- 《计算机原理》 第五章(5-4) DMA方式及接口.ppt
- 《计算机原理》 第六章 输入/输出设备.ppt
- 《计算机原理》 绪论.ppt
- 《计算机原理》 第一章 概论.ppt
- 《计算机原理》 第二章 计算机中的信息表示.ppt