instanceof用法
2014-04-09 18:40
417 查看
instanceof用法
package myPackage;
/**
* instanceof运算符用法
* 运算符是双目运算符,左面的操作元是一个对象,右面是一个类.当
* 左面的对象是右面的类创建的对象时,该运算符运算的结果是true,否则是false
*
* 说明:(1)一个类的实例包括本身的实例,以及所有直接或间接子类的实例
* (2)instanceof左边操作元显式声明的类型与右边操作元必须是同种类或有继承关系,
* 即位于继承树的同一个分支上,否则会编译出错
*/
class Person {
}
class Student extends Person {
}
class Postgraduate extends Student {
}
class Animal {
}
public class Ex_instanceOf {
public static void main(String[] args) {
instanceofTest(new Student());
}
/**
* 这个程序的输出结果是:p是类Student的实例
*
* Person类所在的继承树是:Object<--Person<--Student<--Postgraduate。
*
* 这个例子中还加入一个Animal类,它不是在Person类的继承树中,所以不能作为instanceof的右操作数。
*
* @param p
*/
public static void instanceofTest(Person p) {
// p 和 Animal类型不一样,彼此之间没有继承关系,编译会出错
// 提示错误:Incompatible conditional operand types Person and Animal
// if(p instanceof Animal){
// System.out.println("p是类Animal的实例");
// }
//下面代码的除了第一行都会输出
if (p instanceof Postgraduate) System.out.println("p是类Postgraduate的实例");
if (p instanceof Person) System.out.println("p是类Person的实例");
if (p instanceof Student) System.out.println("p是类Student的实例");
if (p instanceof Object) System.out.println("p是类Object的实例");
// 判断p的真正类型
//下面代码只有第二个if会输出结果,这里我们需要了解if - else if - else
//的语法,它们中按顺序执行只要遇到满足条件的语句就会跳出,无论后面的条件是否为真
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的实例");
}
}
}
instanceof用法
package myPackage;
/**
* instanceof运算符用法
* 运算符是双目运算符,左面的操作元是一个对象,右面是一个类.当
* 左面的对象是右面的类创建的对象时,该运算符运算的结果是true,否则是false
*
* 说明:(1)一个类的实例包括本身的实例,以及所有直接或间接子类的实例
* (2)instanceof左边操作元显式声明的类型与右边操作元必须是同种类或有继承关系,
* 即位于继承树的同一个分支上,否则会编译出错
*/
class Person {
}
class Student extends Person {
}
class Postgraduate extends Student {
}
class Animal {
}
public class Ex_instanceOf {
public static void main(String[] args) {
instanceofTest(new Student());
}
/**
* 这个程序的输出结果是:p是类Student的实例
*
* Person类所在的继承树是:Object<--Person<--Student<--Postgraduate。
*
* 这个例子中还加入一个Animal类,它不是在Person类的继承树中,所以不能作为instanceof的右操作数。
*
* @param p
*/
public static void instanceofTest(Person p) {
// p 和 Animal类型不一样,彼此之间没有继承关系,编译会出错
// 提示错误:Incompatible conditional operand types Person and Animal
// if(p instanceof Animal){
// System.out.println("p是类Animal的实例");
// }
//下面代码的除了第一行都会输出
if (p instanceof Postgraduate) System.out.println("p是类Postgraduate的实例");
if (p instanceof Person) System.out.println("p是类Person的实例");
if (p instanceof Student) System.out.println("p是类Student的实例");
if (p instanceof Object) System.out.println("p是类Object的实例");
// 判断p的真正类型
//下面代码只有第二个if会输出结果,这里我们需要了解if - else if - else
//的语法,它们中按顺序执行只要遇到满足条件的语句就会跳出,无论后面的条件是否为真
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的实例");
}
}
}
相关文章推荐
- java:instanceof的用法
- java中instanceof用法
- java中instanceof用法
- java中instanceof用法
- instanceof 运算符的用法
- instanceof 的用法
- js中的typeof和instanceof的用法和区别(附类型判断方法)
- JAVA Instanceof 用法
- java中instanceof的用法与解释
- instanceof的用法
- java instanceof 用法 对象转型(casting)
- Java中的instanceof关键字在Android中的用法
- Java中isAssignableFrom()方法与instanceof()方法用法
- java中instanceof用法
- 【Java学习笔记之二十三】instanceof运算符的用法小结
- Java 中 instanceof 运算符的用法
- java 中的instanceof用法详解及instanceof是什么意思(推荐)
- java中instanceof的用法
- java中instanceof的用法
- JS中typeof和instanceof的用法和区别