10.4 使用instanceof操作符判断对象类型

1、概述
  当在程序中执行向下转型操作时,如果父类对象不是子类对象的实例,就会发生ClassCastException异常,所以在做执行向下转型之前需要养成一个良好的习惯,就是判断父类对象是否为子类对象的实例。这个判断通常使用instanceof操作符来完成。
  语法格式:myobject instanceof ExampleClass //myobject:某类的对象引用 ExampleClass:某个类

例子10.7

 1 class Quadrangle_B{
 2     //SomeSentence
 3 }
 4 
 5 class Square extends Quadrangle_B{
 6     //SomeSentence
 7 }
 8 
 9 class Anything{
10     //SomeSentence
11 }
12 
13 public class Parallelogram_B extends Quadrangle_B{
14     public static void main(String args[]) {
15         Quadrangle_B q = new Quadrangle_B();    //实例化父类对象
16         
17         //判断父类对象是否为Parallelogram_B子类的一个实例
18         if (q instanceof Parallelogram_B) {
19             Parallelogram_B p = (Parallelogram_B)q;
20             System.out.println("父类对象Quadrangle_B为Parallelogram_B子类的一个实例");
21         }
22         
23         //判断父类对象是否为Square子类的一个实例
24         if (q instanceof Square) {
25             Parallelogram_B p = (Parallelogram_B)q;
26             System.out.println("父类对象Quadrangle_B为Square子类的一个实例");
27         }
28         
29         System.out.println("打印完毕!");
30         
31         //由于q对象不为Anything类的对象,所以这条语句是错误的
32         //System.out.println(q instanceof Anything);
33         
34     }
35 }
View Code

原文地址:https://www.cnblogs.com/studycode/p/9533313.html