Java中可以使用instanceof关键字判断一个对象到底是哪一个类的实例

格式:对象 instance 类  返回 boolean类型

通过子类实例化的对象同时是子类和父类的实例,无论是直接声明子类还是声明了父类,然后再通过子类向上转型

如果直接通过父类实例化本类对象,则一定不是子类的实例

//=================================================
// File Name : ploy_up_demo
//------------------------------------------------------------------------------
// Author : Common // 类名:C_1
// 属性:
// 方法:
class C_1{ // 定义接口C_1
public void fun1(){ //定义fun1()方法
System.out.println("C_1--->public void fun1");
} public void fun2(){ //定义fun2()方法
this.fun1();
}
} //类名:D_1
//属性:
//方法:
class D_1 extends C_1{ //子类D_1继承父类C_1
public void fun1(){
System.out.println("D_1--->public void fun1"); //覆写父类中的fun1()方法
} public void fun3(){
System.out.println("D_1--->public void fun3"); //子类自己定义方法
}
} //类名:E_1
//属性:
//方法:
class E_1 extends C_1{ //子类E_1继承父类C_1
public void fun1(){
System.out.println("E_1--->public void fun1"); //覆写父类中的fun1()方法
} public void fun5(){
System.out.println("E_1--->public void fun3"); //子类自己定义方法
}
} //主类
//Function : 对象的多态性,对象向上转型
public class ploy_up_demo { public static void main(String[] args) {
// TODO 自动生成的方法存根
// D_1 b = new D_1(); //定义子类的实例化对象
// C_1 a = b; //声明一个父类,发生向上转型的关系,子类赋值给父类
// a.fun1(); //此方法被子类覆写过,虽然a是父类,但是调用的是子类的fun1()方法 // C_1 c = new D_1(); //声明一个父类,发生了向上转型,子类赋值给父类
// D_1 d = (D_1)c; //声明的父类强制转换成子类,发生了向下转型关系
// d.fun1();
// d.fun2();
// d.fun3(); // fun(new C_1()); //传递C_1类的实例,产生向上转型
// fun(new D_1()); //传递D_1类的实例,产生向上转型 C_1 a = new D_1(); //发生向上转型
System.out.println("C_1 a = new D_1():"+(a instanceof C_1));
System.out.println("C_1 a = new D_1():"+(a instanceof D_1)); C_1 a_1 = new C_1(); //声明一个父类
System.out.println("C_1 a = new C_1():"+(a_1 instanceof C_1));
System.out.println("C_1 a = new C_1():"+(a_1 instanceof D_1)); D_1 a_2 = new D_1(); //声明一个子类
System.out.println("D_1 a = new D_1():"+(a_2 instanceof C_1));
System.out.println("D_1 a = new D_1():"+(a_2 instanceof D_1));
} public static void fun(C_1 c){ //接收父类对象,不用写多次分别接收子类对象
c.fun1();
}
}

Java关键字——instanceof的更多相关文章

  1. 深入Java关键字instanceof

    深入Java关键字instanceof   instanceof关键字用于判断一个引用类型变量所指向的对象是否是一个类(或接口.抽象类.父类)的实例.   举个例子: public interface ...

  2. Java关键字instanceof

    深入Java关键字instanceof   instanceof关键字用于判断一个引用类型变量所指向的对象是否是一个类(或接口.抽象类.父类)的实例.   举个例子:   public interfa ...

  3. Java——关键字instanceof

    instanceof 判断一个对象是否为一个类的实例,是为true ,否为false class Animal{} class Cat extends Animal{} /**instanceof 判 ...

  4. Java-Runoob-高级教程-实例-方法:07. Java 实例 – instanceOf 关键字用法

    ylbtech-Java-Runoob-高级教程-实例-方法:07. Java 实例 – instanceOf 关键字用法 1.返回顶部 1. Java 实例 - instanceof 关键字用法   ...

  5. Java 实例 - instanceof 关键字用法

    Java 实例 - instanceof 关键字用法 instanceof 是 Java 的一个二元操作符,类似于 ==,>,< 等操作符. instanceof 是 Java 的保留关键 ...

  6. java关键字之instanceof

    首先来看段测试代码 public class TestInstanceof{ public static void main(String[] args){ int a = 1; if(a insta ...

  7. Java关键字

    Java关键字简介 类别 关键字 说明 访问控制 private 私有的 protected 受保护的 public 公共的 类.方法和变量修饰符 abstract 声明抽象 class 类 exte ...

  8. Java关键字总结及详解

    Java关键字是Java的保留字,这些保留字不能用来作为常量.变量.类名.方法名及其他一切标识符的名称. 一.基本数据类型 Java中有八种基本数据类型,六种数字类型(四个整数型.六中浮点型),一种字 ...

  9. Java关键字及其作用

    Java关键字及其作用 一. 关键字总览 访问控制 private protected public             类,方法和变量修饰符 abstract class extends fin ...

随机推荐

  1. 总有一天会NB的! SB一样的坚持会有NB一样的结果的!

    第一天: 1.背景图不显示,因为背景图片无法撑开div,所以必须自己设置div的高度哦! 2.div水平居中! A:margin-left:auto;margin-right:auto;  B: 父元 ...

  2. hibernate用setResultTransformer转换

    当你用hibernate查出数据,但是类型不是原来的类型怎么办,新增的实体类还可以用,query.setResultTransformer(Transformers.aliasToBean(AA.cl ...

  3. .net的Hello World之旅

    class Program    {        //这是主函数,是程序的入口        static void Main(string[] args)        {            ...

  4. 【SPOJ 694】Distinct Substrings 不相同的子串的个数

    不会FQ啊,没法评测啊,先存一下代码QAQ 2016-06-16神犇Menci帮我测过AC了,谢谢神犇Menci QwQ #include<cstdio> #include<cstr ...

  5. js-设置焦点

    function CheckForm() { if(document.form1.trainingName.value==""){ alert("培训班名称不能为空!&q ...

  6. 浅谈malloc()与free()

    malloc()与free() l  函数原型 malloc函数的函数原型为:void* malloc(unsigned int size),它根据参数指定的尺寸来分配内存块,并且返回一个void型指 ...

  7. 高级语言虚拟机的一点理解,对比.NET和Java平台

    最近学习了一些高级语言虚拟机的知识,在此对.NET平台和java平台做一个简单的比较.对java平台已经很熟了,所以此处只介绍.NET平台下的一些概念. 一.CLI 通用语言基础架构(Common L ...

  8. SVN中(trunk tags branches)的使用理解

    trunk--主干(永远都是最新的,每发布一个版本会在tags和branches上进行分支) tags-标签(只读,用于存放发布后的文件冻结,以及对应发布后版本的源文件:可以是来自主干或者分支的发布: ...

  9. 【问题】R文件报错原因及解决办法 (转)

    错误如图.下面是几种解决方法(网上搜集的). 1.如果是导入项目出现这个问题,一般是R文件没有更新造成(据说导入项目,R不会自动更新).可以Project——clean以下,R文件会重新生成. 2.选 ...

  10. C++ 之const Member Functions

    Extraction from C++ primer 5th Edition 7.1.2 The purpose of the const that follows the parameter lis ...