java中对象的类型转换

                           java中对象的类型转换

1.向类型转换

             在java中对象的向上类型转换是安全的。

        具体解释请参考以下代码及其注释:

public class ExampleTest {

	public static void main(String[] args) {
		Animal animal=new Dog();   //向上类型转化,把Dog类的对象转换成了Animal类的对象,方法不会丢失
        animal.eat();          //调用Dog的eat方法
      	}

}
class Animal{    //创建一个Animal类
	
	public void eat(){  //定义一个动物eat的方法,不具体指定哪一种动物,便于程序扩展
		
	}
}
class Dog extends Animal{//创建一个Dog类,继承自Animal父类
	
	public void eat(){    //重写父类的eat方法
		System.out.println("啃骨头");
	}
}
class Cat extends Animal{//创建一个Cat类,继承自Animal父类
	
	public void eat(){    //重写父类的eat方法
		System.out.println("吃鱼肉");
	}
}

输出结果:啃骨头



2.向类型转换

              在java中对象的向上类型转换是不安全的。因为会丢失子类中的方法!,我画一幅图说明以下就懂了。

  

       因为子类是继承自父类的,所以父类有的方法子类肯定有,所以向上类型转换是安全的。而子类中有的方法父类不一定有,所以向下类型转换是不安全的

        具体解释请参考以下代码及其注释:

public class ExampleTest {

	public static void main(String[] args) {
		Dog animal=  new Animal();//向下类型转化,把Animal类的对象转换成了DOg类的对象,不安全
        animal.eat();          //调用Dog的eat方法
      	}

}
Dog类和Cat类的代码和上面一样

 避免向下类型转换出现错误的方法:

public class ExampleTest {

	public static void main(String[] args) {
		Dog animal= new Animal();//向下类型转化,把Animal类的对象转换成了DOg类的对象,不安全
		if(animal instanceof Dog)
                animal.eat();          //调用Dog的eat方法
      	}
	    

}

Dog类和Cat类的代码和上面一样


       java中instanceof 关键字是用来判断对象的类型是不和后面类是不是匹配,如果匹配返回true,否则返回false。用这个关键字可以限制类

型转换时出现错误










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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值