第六讲 面向对象编程: 多态 主要内容 引用类型转换 子类对象可以当成父类对象使用(父类引用变量可以指 向子类的对象) 不能通过父类的引用访问子类对象新增加的成员 父类引用只有经过强制转换后才能赋值给子类引用变量。 当且仅当,父类引用确实指向子类对象的时候,这样的强制 转换才能够顺利运行。 语句“引用变量名 is 类名”作用:判断该引用类型变量 所指向的“对象”是否属于该类 引用类型转换 【例1】请分析下面代码的输出结果,理解引用类型转换的规则。 引用类型转换 【例2】请分析下面代码的输出结果。 引用类型转换 【例3】请阅读下面代码,理解引用类型转换能够给程序带来较好的扩展性。 动态绑定 动态绑定是一种调用对象方法的机制,指的是在运行期间,系统将调用对象实际类型所对应的方法。 动态绑定机制,使得系统能够很好地处理在系统初创时没有预见的数据类型。 动态绑定三个必要条件:1)继承;2)重写;3)父类引用指向子类对象 动态绑定 【例1】分析下面代码的输出结果。 动态绑定 【例2】分析下面代码的输出结果。 抽象类 1、什么是抽象方法? 不含有任何方法体的方法。 抽象方法必须用abstract关键字声明。 public abstract int Func(int a) ; 抽象类 2、 什么是抽象类? 包含抽象方法的类。 抽象类必须用abstract关键字声明。 abstract class Test { public abstract int Func (int a); } 抽象类 3、抽象类中,可以包含抽象方法和非抽象方法。 abstract class Test { public abstract int F1(int a,int b);//抽象方法 public void F2(){}//非抽象方法 } 抽象类 4、抽象类不能被实例化(new)。 5、抽象类必须被继承,抽象方法必须被重写。只有当子类实现了父类的所有抽象方法,该子类才能够被实例化。否则,它还是一个抽象类。 抽象类 【例1】请编写代码模拟操作系统与存储介质之间的关系。具体要求如下:(1)操作系统能够访问不同的存储介质,硬盘、U盘等;(2)操作系统在访问某个存储介质的时候,无需关心这个存储介质是如何实现读写操作。 接口 接口是对一组方法声明的统一命名。接口实现了对方法的统一管理,避免了在每种类型中方法的重复定义。 接口中的成员可以是方法、属性、事件、索引器;但接口中不能包含字段、运算符重载、实例构造函数和析构函数。 接口中所有成员默认是公共抽象的,但不能使用public、static等修饰符。 接口:隐式的接口实现 【例1】一个类可以实现多个接口,从而达到多继承。 接口:隐式的接口实现 【例1】代码中采用隐式的接口实现方式,即在实现代码中没有指定实现哪个接口的方法。 当多个接口中包含相同的“方法名称、返回类型和参数”时,如果一个类同时实现了这些接口,隐式的接口实现将出现命名冲突。 接口:显式的接口实现 显式的接口实现方式,指的是在实现过程中,明确指出实现哪个接口的哪个方法,因此可以解决命名冲突。 若显式实现接口,方法不能使用任何修饰符。 显式实现的成员默认为私有的,因此这些成员不能通过类的对象访问。正确的访问方式是把对象转换为对应的接口,通过接口调用方法。 接口:显式的接口实现 【例2】显式的接口实现解决了命名冲突。程序根据不同的接口输出了不同的打招呼内容。 接口的继承 【例3】银行账户接口及实现类。 接口与抽象类的比较 1、抽象类中可以包含虚方法、非抽象方法和静态成员;接口中不能包含非抽象方法和静态成员。 2、抽象类不能实现多继承;接口则支持多继承。 3、抽象类是对一类对象的抽象,继承于抽象类的类与抽象类为“is-a”关系;类实现接口代表实现类具有接口声明的方法,是一种“can-do”的关系。抽象类主要用于关系密切的对象,而接口适合于为不相关的类提供通用功能。 面向对象编程的应用 【例1】设计一个狗类。 【方案一】根据类的定义,直接设计一个Dog类: class Dog { public void Eat(){//eat some food} public void Walk(){//walk} } 面向对象编程的应用 【方案二】使用继承。 由于Eat和Walk都是动物的共同特性,也有可能被其他类用到,这时可以考虑使用“继承”,重新设计代码如下: public abstract class Animal { public abstract v
您可能关注的文档
- 4走进化学实验室(上课用)研讨.ppt
- 6高频功率放大器研讨.ppt
- 生产安全事故管理研讨.ppt
- 4走进纽约研讨.ppt
- 005-006Windows消息机制C++研讨.ppt
- 6各类食品卫生及其管理研讨.ppt
- 生产安全事故及其预防-机械类研讨.ppt
- 005第五章外汇与汇率g42研讨.ppt
- 生产安全事故应急预案培训研讨.ppt
- 6合同法(担保)研讨.ppt
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
原创力文档

文档评论(0)