多态和类型转化(instanceof)
来源:互联网 发布:网眼空间绑定域名教程 编辑:程序博客网 时间:2024/06/17 16:43
Java多态性理解
- 多态定义:同一消息可以根据发送对象的不同而采取不同的行为方式(发送消息就是函数调用)
- 多态实现:动态绑定(是指在执行期间判断所引用对象的实际类型,根据其实际类型来调用其相应方法)
- 多态作用:消除类型之间的耦合
- 现实中例子:比方说按下 F1 键这个动作,如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档;如果当前在 Word 下弹出的就是 Word 帮助;在 Windows 下弹出的就是 Windows 帮助和支持。 同一个事件发生在不同的对象上会产生不同的结果
多态存在的三个必要条件
- 要有继承
- 要有重写
- 父类引用指向子类对象
多态性理解
- 指向子类的父类引用由于向上转型了,它只能访问父类中拥有的方法和属性,而对于子类中存在而父类中不存在的方法,该引用是不能使用的,尽管是重载该方法。
- 若子类重写了父类中的某些方法,在调用该些方法的时候,必定是使用子类中定义的这些方法(动态连接、动态调用)。
多态的实现形式
- 基于继承实现的多态: 继承是通过重写父类的同一方法的几个不同子类来体现的
- 基于接口实现的多态:在接口的多态中,指向接口的引用必须是指定这实现了该接口的一个类的实例程序,在运行时,根据对象引用的实际类型来执行对应的方法。
向下转型
- 要慎用向下转型。由于向下转型容易出问题,为此不到万不得已的时候,最好不用使用向下转型。条条道路通罗马,如果在编程之前,合理规划类,往往可以避免向下转型的发生。只有其他路走不通的情况下,才考虑通过向下转型的技术来解决问题。
- 在进行向下转型的时候,需要做两件事情。一是一定要使用instanceof操作符来判断转型的合法性,即判断父类对象是否为子类对象的实例
- 需要做好备注等注释工作。由于像向下转型等操作是容易出现问题的地方。为此在进行类似的操作时,最好在行注释或者块注释中能够进行说明。这对于后续的维护与代码的升级是很有帮助的。好记性不如烂笔头。
阅读全文
0 0
- 多态和类型转化(instanceof)
- JS类型检测(typeof和instanceof)
- Java 多态中的类型转换(instanceof)
- 多态的实质、利弊、使用条件、类型、instanceof
- Java 判断对象类型instanceof 【多态扩展】
- java 类型信息 instanceof 和 isInstance区别
- 【JS】instanceof对象类型和null
- java 类型信息 instanceof 和 isInstance区别
- instanceof和类型转换之谜
- java 类型信息 instanceof 和 isInstance区别
- Java 类型信息 instanceof、isInstance和isAssignabelFrom
- java 类型信息 instanceof 和 isInstance区别
- java 类型信息 instanceof 和 isInstance区别
- java 类型信息 instanceof 和 isInstance区别
- js中的typeof和instanceof的用法和区别(附类型判断方法)
- TypeScript 强制类型转换和类型判断 typeof,instanceof
- JAVA多态与类型转化分析
- 继承和类类型转化
- ecshop添加类似于精品,新品,热销的模块
- 获取元素方式
- 常用正则表达式大全
- 自我突破
- Vue, App与我(八)
- 多态和类型转化(instanceof)
- java发送邮件
- UVa-133 The Dole Queue(约瑟夫环)
- 一键产生非交互的密钥对
- 【python】excel操作
- 正规表示法和Linux三剑客
- Java堆、栈、方法区、常量池(转载)
- this指针详解
- linux 路由表设置 之 route 指令详解