java多态
2016-06-02 19:15
253 查看
多态:
多态分为两种:编译时多态和运行时多态。
编译时类型:主观概念,把它看作什么。
运行时类型:客观概念,实际它是什么。
例:Animal a=new Dog();
指着狗问,这个动物是什么?
运行时多态的三原则:
对象类型不变。
只能对对象调用编译时类型中定义的方法。
在程序的运行时,根据对象的运行时类型,找覆盖后的方法来调用。(运行时动态类型绑定)
强制类型转换: 一定没有新对象生成。(父类的引用赋值给子类的引用需要进行强制类型转换)
关键字:instanceof
用法:引用 instanceof 类名 判断这个引用所指向的对象是否属于这个类。
用在强制转换之前,避免类型转换异常。
if(a instanceof Dog){
Dog d=(Dog)a;
}
多态的作用:把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。
多态分为两种:编译时多态和运行时多态。
编译时类型:主观概念,把它看作什么。
运行时类型:客观概念,实际它是什么。
例:Animal a=new Dog();
指着狗问,这个动物是什么?
运行时多态的三原则:
对象类型不变。
只能对对象调用编译时类型中定义的方法。
在程序的运行时,根据对象的运行时类型,找覆盖后的方法来调用。(运行时动态类型绑定)
强制类型转换: 一定没有新对象生成。(父类的引用赋值给子类的引用需要进行强制类型转换)
关键字:instanceof
用法:引用 instanceof 类名 判断这个引用所指向的对象是否属于这个类。
用在强制转换之前,避免类型转换异常。
if(a instanceof Dog){
Dog d=(Dog)a;
}
多态的作用:把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。
相关文章推荐
- 继承+重写+多态(用java写的例子)
- SpringMVC工作原理
- 【LeetCode】Simplify Path实现(Java版)
- myeclipse中项目的展示为包格式,文件格式设置
- leetcode06- ZigZag Conversion之Java版本
- mvn 创建简单的spring项目
- java基础[1]类与对象_思维导图总结3
- Netbeans学习总结
- Eclipse下 Java对MySQL数据库操作
- Spring---Spring之初步体验
- 20160512关于springMvc权限拦截问题
- java基础[1]类与对象_内部类_思维导图总结2
- 10037---Java内存分配、管理小结
- java基础[1]类与对象_思维导图总结1
- Callable接口解析
- [记录][续爬虫]模拟京东登录并且抢购物券
- Java之集合的实现细节(一)
- 桶排序——java
- Java泛型
- myeclipse 中alt + /提示no default proposals的解决方法