Java关键字——instanceof
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的更多相关文章
- 深入Java关键字instanceof
深入Java关键字instanceof instanceof关键字用于判断一个引用类型变量所指向的对象是否是一个类(或接口.抽象类.父类)的实例. 举个例子: public interface ...
- Java关键字instanceof
深入Java关键字instanceof instanceof关键字用于判断一个引用类型变量所指向的对象是否是一个类(或接口.抽象类.父类)的实例. 举个例子: public interfa ...
- Java——关键字instanceof
instanceof 判断一个对象是否为一个类的实例,是为true ,否为false class Animal{} class Cat extends Animal{} /**instanceof 判 ...
- Java-Runoob-高级教程-实例-方法:07. Java 实例 – instanceOf 关键字用法
ylbtech-Java-Runoob-高级教程-实例-方法:07. Java 实例 – instanceOf 关键字用法 1.返回顶部 1. Java 实例 - instanceof 关键字用法 ...
- Java 实例 - instanceof 关键字用法
Java 实例 - instanceof 关键字用法 instanceof 是 Java 的一个二元操作符,类似于 ==,>,< 等操作符. instanceof 是 Java 的保留关键 ...
- java关键字之instanceof
首先来看段测试代码 public class TestInstanceof{ public static void main(String[] args){ int a = 1; if(a insta ...
- Java关键字
Java关键字简介 类别 关键字 说明 访问控制 private 私有的 protected 受保护的 public 公共的 类.方法和变量修饰符 abstract 声明抽象 class 类 exte ...
- Java关键字总结及详解
Java关键字是Java的保留字,这些保留字不能用来作为常量.变量.类名.方法名及其他一切标识符的名称. 一.基本数据类型 Java中有八种基本数据类型,六种数字类型(四个整数型.六中浮点型),一种字 ...
- Java关键字及其作用
Java关键字及其作用 一. 关键字总览 访问控制 private protected public 类,方法和变量修饰符 abstract class extends fin ...
随机推荐
- MyBatis学习--逆向工程
简介 mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程 可以针对单表自动生成mybatis执行所需要的代码(mapper.java,mapper.xml.po..).企业实际 ...
- [转]jsp与servlet的区别联系
原文地址:http://bbs.itheima.com/thread-28972-1-1.html Servlet是Java提供的用于开发Web服务器应用程序的一个组件,运行在服务器端,由Servle ...
- git组成结构
1. blob对象(blob) 2. 目录树(tree) 3. 提交(commit) 4. 标签(tag) git 文件按照状态分为3类: 1. 已追踪的(tracked) 2. 被忽略的(Ignor ...
- 学习Spring(三) 设置Bean作用域
Spring中几种不同的作用域 Singleton 每个Spring IoC容器中创建一个Bean实例 Prototype 每次请求时创建一个新的Bean实例 Request 为 ...
- poj2955括号匹配 区间DP
Brackets Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5424 Accepted: 2909 Descript ...
- 100722A
这道题抄了答案: 思路:旋转,其实只用旋转四次,因为在换行的过程中旋转其实是没有意义的,因为行列只不过转了个角度.然后主要的是行列的交换,这里我很头疼,写了个盲目搜索,当然wa掉了 问了问某位同志,是 ...
- WakeLock, AlarmManager, JobScheduler
应用程序耗电的实质,是所启用的硬件在消耗电量. 手机的耗电单元 CPU: 应用处理器(AP)和基带处理器(BB或BP) GPU(图形处理单元) 外设:wifi,BT, GPS,LCD等 AP是ARM架 ...
- 【CodeForces 589F】Gourmet and Banquet(二分+贪心或网络流)
F. Gourmet and Banquet time limit per test 2 seconds memory limit per test 512 megabytes input stand ...
- Leetcode 372. Super Pow
使用公式 c = ab => c mod d = [a mod d * b mod d] mod d 所以a^423 mod d = (a^100)^4 * (a ^10)^2 * a^3 ...
- 【caffe】无法找到gpu/mxGPUArray.h: No such file or directory
@tags: caffe 问题出现在,windows下编译caffe的过程中.按照github.com/microsoft/caffe的readme配置的. 问题原因是,用的matlab版本较新(20 ...