instanceof

什么时候用多态:
在定义一个方法时,将方法的形参尽量定义为一个接口,或者是一个抽象类,这样当这个方法被掉用时,就可以有选择性的传递参数,可以传递实现这个接口的任意一个类,这样程序的可扩展性就是最好的

instanceOf:
1.用instanceof来测试它所指向的对象是否是某个类。
2.instanceof在对象类型的强制转换,先判断是否是某种类型,是的话再强制转换成改类型。

 

例如下面的例子:

class Person{}
class Student extends Person{}
class Postgraduate extends Student{}
class Animal{}
public class InstanceofTester {
public static void main(String[] args) {
instanceofTest(new Student());
}
public static void instanceofTest(Person p){
// 判断p的真正类型
if (p instanceof Postgraduate){
System.out.println("p是类Postgraduate的实例");
} else if(p instanceof Student){
System.out.println("p是类Student的实例");
} else if(p instanceof Person){
System.out.println("p是类Person的实例");
} else if(p instanceof Object) {
System.out.println("p是类Object的实例");
}
/*if(p instanceof Animal){//此错编译错误,所以做注释
System.out.println("p是类Animal的实例");
}*/
}
}

输出结果:p是类Student的实例

Person类所在的继承树是:Object<--Person<--Student<--Postgraduate。

这个例子中还加入一个Animal类,它不是在Person类的继承树中,所以不能作为instanceof的右操作数。

posted on 2015-06-03 10:14  夜凉之境  阅读(169)  评论(0)    收藏  举报