instance用法

本文介绍了Java中的instanceof关键字,用于判断一个对象是否属于某个类或其子类。通过示例展示了如何使用instanceof进行类型检查,并讨论了类型转换的概念,包括向上转型和向下转型,以及它们在代码简洁性和方法调用中的作用。
摘要由CSDN通过智能技术生成

instanceof是Java的一个二元操作符,和==,>,<是同一类东东。由于它是由字母组成的,所以也是Java的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据。

package oop.Demo08;

public class Main {
    public static void main(String[] args) {
        //object>person>teacher
        //object>person>student
        //object>String
        Object object = new Student();
//        System.out.println(x instanceof y);能不能编译通过
        System.out.println(object instanceof Student);//true
        System.out.println(object instanceof Object);//true
        System.out.println(object instanceof Person);//true
        System.out.println(object instanceof Teacher);//fause
        System.out.println(object instanceof String);//fause
        System.out.println("==========================");
        Person person = new Student();
        System.out.println(person instanceof Student);//true
        System.out.println(person instanceof Object);//true
        System.out.println(person instanceof Person);//true
        System.out.println(person instanceof Teacher);//fause
       // System.out.println(person instanceof String);//编译报错
        System.out.println("====================================");
        Student student = new Student();
        System.out.println(student instanceof Student);//true
        System.out.println(student instanceof Object);//true
        System.out.println(student instanceof Person);//true
//        System.out.println(student instanceof Teacher);
//        System.out.println(student instanceof String);//编译报错
    }
}

在这里插入图片描述
1、能否编译通过,看类,x与y的类(x与y本身就是类),若存在父子或者子父关系可编译
2、若x与y不存在子父关系,如teacher与student,就不可编译
3、编译过后T/F看引用指向对象,x指向的对象如果是后面y的子类,则为T

package oop.Demo08;

public class Main {
    public static void main(String[] args) {
       //类型之间的转换:基本类型转换   高->低
        Person ak = new Student();
//        student.go;//报错
        //student将这个对象转换为Student类型,我们就可以使用Student类型的方法了
        Student ak1 = (Student) ak;
        ak1.go();
    }
}
//父类的引用指向子类的对象
//把父类转换为子类,向下转型;
//把子类转换为父类:强制转换,可能会丢失方法
//方便方法的调用,减少重复的代码!简洁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值