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 }

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

时间: 2024-10-15 19:13:36

10.4 使用instanceof操作符判断对象类型的相关文章

instanceof操作符判断对象类型

instanceof 的语法格式如下: myobject instanceof ExampleClass myobject:某类的对象引用 ExampleClass:某个类 1 class Quadrangle{ 2 public static void draw(Quadrangle q) { 3 } 4 } 5 6 class Square extends Quadrangle { 7 8 } 9 10 class Anything { 11 12 } 13 public class Par

javascript 判断对象类型

typeof typeof是一个一元运算符,它返回的结果 始终是一个字符串,对不同的操作数,它返回不同的结果. 此表总结了typeof所有可能的返回值: 操作数类型 返回值 undefined "undefined" Null "object" Boolean "boolean" Number "number" String "string" 函数对象 "function" E4X XM

(转)JavaScript中判断对象类型的种种方法

我们知道,JavaScript中检测对象类型的运算符有:typeof.instanceof,还有对象的constructor属性: 1) typeof 运算符 typeof 是一元运算符,返回结果是一个说明运算数类型的字符串.如:"number","string","boolean","object","function","undefined"(可用于判断变量是否存在). 但 type

JavaScript判断对象类型及节点类型、节点名称和节点值

一.JavaScript判断对象类型 1.可以使用typeof函数判断对象类型 1 function checkObject1(){ 2 var str="str"; 3 console.log(typeof(str))//输出"string"; 4 console.log(typeof(str)=="string")//输出true; 5 }? 2.使用对象的构造函数属性(constructor),来判断对象的类型: 1 function ch

c++派生类中构造函数和析构函数执行顺序、判断对象类型、抽象类、虚函数

一. 代码: 1 #include<stdio.h> 2 #include<string.h> 3 #include<algorithm> 4 #include<iostream> 5 using namespace std; 6 class A 7 { 8 public: 9 int a,b; 10 A(); 11 A(int x,int y); 12 ~A(); 13 }; 14 A::A() 15 { 16 printf("调用A类构造函数\

判断对象类型 typeof instanceof Object.prototype.tostring()

常见的有三种方法  1, typeof  2, instance of   3, object.prototype.toString.apply(); 1,typeof  typeof 运算符 typeof 是一元运算符,返回结果是一个说明运算数类型的字符串.如:"number","string","boolean","object","function","undefined"(可用于

判断对象类型

1.typeof不能区分数组类型和对象,只能区分原始类型与function 2.判断父级对象: isPrototypeOf -- 判断对象本身数据类型,及可能继承自原型的数据类型 let bool = Array.prototype.isPrototypeOf(obj) 3. 判断构造函数: 检查整个原型链 obj.constructor==Array 是数组,也可能继承自数组 let bool = obj instanceof Array 是数组,也可能继承自数组 4. 判断对象的内部clas

Java判断对象类型是否为数组

判断对象是否为数组: public static void main(String[] args) { String[] a = ["1","2"]; if(a instanceof String[]){ System.out.println("ss") } if(a.getClass().isArray()){ System.out.println("yy") } } 第一种做法:instanceof java 中的inst

JS判断对象类型

对于确定JS内置对象类型,JS提供了typeof运算符,该运算符得到的结果为以下6种:number,boolean,string,function,object,undefined.不过对绝大多数对象而言,typeof都返回"object",无法确定具体的类型.我们使用一种函数Object.prototype.toString.call来判断 <script> var a = 1; console.log("a:"+typeof a); //number