Java 对象转型

对象转型

  • 规则一:一个基类的引用类型可以指向其子类对象。
  • 规则二:一个基类的引用不可以访问其子类对象新增加的成员(属性和方法)。
  • 规则三:可以使用“变量instanceof类名”来判断该引用是否指向该类或该类的子类。
  • 规则四:子类的对象可以当作基类的对象来使用称作向上转型,反之称作向下转型。
class Animal
{
    public String name;
    Animal(String name)
    {
        this.name = name;
    }
}
class Cat extends Animal
{
    public String eyescolor;
    Cat(String n,String c)
    {
        super(n);
        eyescolor = c;
    }
}
class Dod extends Animal
{
    public String furcolor;
    Dog(String n,String c)
    {
        super(n);
        furcolor = c;
    }
}
puclic class Test
{
    public static void main(String args[])
    {
        Animal a = new Animal("name");
        Cat c = new Cat("catname","blue");
        Dog d = new Dog("dogname","black");
        
        System.out.println(a instanceof Animal);//true,规则三
        System.out.println(c instanceof Animal);//true,规则三
        System.out.println(d instanceof Animal);//true,规则三
        System.out.println(a instanceof Cat);//false,违反规则三
        
        a = new Dog("bigyellow","yellow");//规则一
        System.out.println(a.name);//bigyellow,规则二
        System.out.println(a.furname);//error,违反规则二
        System.out.println(a instanceof Animal);//true,规则三
        System.out.println(a instance Dog);//true,规则三
        //注意instanceof实际上看的是这个引用指向的对象,而不是这个引用的类型
        Dog d1 = (Dog)a;//强制转换,向下转型
        System.out.println(di.furcolor);//yellow
    }
}

转载于:https://www.cnblogs.com/031602523liu/p/8654185.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值