本文主要是介绍oop_day07_多态_20150815,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
oop_day07_多态_20150815
1.多态:多种形态
1)多态的意义:
1.1)同一类型的引用指向不同的对象时,有不同的实现
---------cut()、run()-----行为的多态
1.2)同一个对象被造型为不同的类型时,有不同的功能
---------我、水---------对象的多态
2)向上造型:
2.1)父类型的引用指向子类的对象
2.2)能向上造型的类型有: 父类、所实现的接口
2.3)能点出来什么,看引用的类型
3)强制类型转换,成功的情况有两种:
3.1)引用所指向的对象,就是该类型
3.2)引用所指向的对象,实现了该接口
4)强转失败会发生类型转换异常(ClassCastException)
强转之前最好通过instanceof来判断引用所指向的对象是否是该类型,
instanceof返回true或false,强转成功的条件就是instanceof为true的条件
代码示例:
package oo.day07;
//向上造型
public class UpDemo {public static void main(String[] args) {Boo o1 = new Coo(); //向上造型Coo o2 = (Coo)o1; //正确,o1所指向的对象就是Coo类型Inter3 o3 = (Inter3)o1; //正确,o1所指向的对象实现了Inter3接口//Doo o4 = (Doo)o1; //类型转换异常(ClassCastException)if(o1 instanceof Doo){Doo o5 = (Doo)o1;}}
}interface Inter3{
}
class Boo{
}
class Coo extends Boo implements Inter3{
}
class Doo extends Boo{
}
这篇关于oop_day07_多态_20150815的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!