三句话秒懂instanceof关键字用法

0、前置知识:

  1. 继承
  2. 引用类型转换

1、三句话

* instanceof 关键字用法总结:
* 对象(引用) instanceof 类型   例如 sons instanceof Father //true  
* 0.编译错误    当 类型 与 对象类型没有继承关系时               sons instanceof String
* 1.返回true。  当 类型 为 对象类型的  类型或者父类类型时    sons instanceof Father或者Son    
* 2.返回false。 当 类型 为 对象类型的  子类型时    father instanceof Son//false

2.代码验证

public class TestInstanceof {
    /**
     * instanceof 关键字用法总结:
     * 对象(引用) instanceof 类型 例如 son instanceof Father //true
     * 0.编译错误    当 类型 与 对象类型没有继承关系时
     * 1.返回true。  当 类型 为 对象类型的  类型或者父类类型时
     * 2.返回false。 当 类型 为 对象类型的  子类型时
     * */
    public static void main(String[] args) {
        Father sons=new Sons();
        Father f=new Father();
        Object o=new Object();
        String str="abc";
        System.out.println("s instanceof Object:   "+(str instanceof Object));
        System.out.println("sons instanceof Father:"+(sons instanceof Father));
        System.out.println("f instanceof Father:   "+(f instanceof Father));
        System.out.println("f instanceof Sons:     "+(f instanceof Sons));
        System.out.println("f instanceof Object:   "+(f instanceof Object));
        //instanceof 两边必须具有继承关系 否则编译错误
//        System.out.println(s instanceof Father);两边没有继承关系 编译错误
    }
}

class Father{}
class Sons extends Father{}
public class TestInstanceof {
    /**
     * instanceof 关键字用法总结:
     * 对象(引用) instanceof 类型 例如 son instanceof Father //true
     * 0.编译错误    当 类型 与 对象类型没有继承关系时
     * 1.返回true。  当 类型 为 对象类型的  类型或者父类类型时
     * 2.返回false。 当 类型 为 对象类型的  子类型时
     * */
    public static void main(String[] args) {
        Father sons=new Sons();
        Father f=new Father();
        Object o=new Object();
        String str="abc";
        System.out.println("s instanceof Object:   "+(str instanceof Object));
        System.out.println("sons instanceof Father:"+(sons instanceof Father));
        System.out.println("f instanceof Father:   "+(f instanceof Father));
        System.out.println("f instanceof Sons:     "+(f instanceof Sons));
        System.out.println("f instanceof Object:   "+(f instanceof Object));
        //instanceof 两边必须具有继承关系 否则编译错误
//        System.out.println(s instanceof Father);两边没有继承关系 编译错误
    }
}

class Father{}
class Sons extends Father{}

运行结果:

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值