对象的上下转型

对象的上下转型

向上转型

向上转型其实就是多态写法,父类引用指向子类对象

**格式:**父类名称 对象名 = new 子类名称();

​ 父类接口 对象名 = new 子类接口名称();

注意事项:**向上转型一定是安全的。**从小范围到大范围。

Demo:

Animals animals = new Cat();		//创建了一只猫,将猫当做动物看,正确

类似于:

double num = 100; //正确, int --> double ,自动类型转换。

向下转型

对象的向下转型,其实是一个【还原】的动作。

格式:

子类名称 对象名 = (子类名称) 父类对象;

含义:

将父类对象,【还原】成本来的子类对象。

Demo

Animals animal = new Cat();		//将猫转化为动物。
Cat cat = (Cat) animal;			//将被转型为动物的猫还原成为本来的猫

注意事项:

必须保证对象本来创建的时候就是猫,才能向下转型成为猫,否则会报错。

使用instanceOf关键字进行类型判断

使用instanceOf关键字可以判断一个父类引用的对象的本类是不是哪一个类!

格式:

对象 instanceOf 类名称

这时将会得到一个***boolean***值结果,也就是判断前面的对象的本类是不是后面。

Demo:

public static void main(String[] args) {
        Animal animal = new Dog();
        //判断animals类的本类是不是Dog
    	if(animal instanceof Dog){
            System.out.println("Dog");
        }
        //判断animals类的本类是不是Cat
    	if(animal instanceof Cat){
            System.out.println("Cat");
        }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值