Java自学|instanceof和类型转换

Java自学|instanceof和类型转换


1.概念
  • instanceof关键字可以去判断两个类之间是否有父子关系
  • 如果一个对象时某个特定类或者时该特定类的子类的一个实例那么就返回真
  • 不能对两个没有直接向上关系的类进行如此操作(编译直接报错)

格式:实例 instanceof 类

	Person person = new Person();
	System.out.println(person instanceof Person);
2.实例

我们先定义一个Person类

//基类
public class Person {
    
}

再定义两个个Person的子类,分别为Student和Teacher:

//子类
public class Student extends Person{
    
}
//子类
public class Teacher extends Person{

}

我们可以很容易的知道这三个类的关系:

在这里插入图片描述

那么我们接下来就可以做测试了

public class selfStudy {
    public static void main(String[] args) {
        Person person = new Person();
        System.out.println(person instanceof Person);
        System.out.println(person instanceof Student);
        System.out.println(person instanceof Teacher);
        System.out.println("==================");	//分隔
        Student student = new Student();
        System.out.println(student instanceof Person);
        System.out.println(student instanceof Student);
        //System.out.println(student instanceof Teacher);
    }
}

我们再分隔线之前,new了一个person对象,让他去和这三个类使用instanceof关键字,我们从上面的关系图可以知道,person这个对象是Person的实例,不是Student和Teacher的实例,也不是Student和Teacher的子类的实例,所以输出结果肯定是true、false、false。

分割线以下部分同理,这里要注意以下我们标上注释的一句,用Student的实例去和Teacher判断,它们没有任何关系,编译时就是直接报错。

结果如下:

在这里插入图片描述

3.类的转换

我们知道子类继承了父类的所有方法和属性,是可以直接用父类的方法的;如果将父类转化为子类,那么久可以直接使用子类的方法,但是如果父类是由子类的转化得到的,那么会丢失一部分子类的方法(子类独有的方法)。


世上没有白走的路,每一步都算数!

跟上狂神说Java!

每个牛B的人背后都有段苦逼的岁月,只要像sb一样的坚持,终将牛B!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alan_Lowe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值