J2SE学习笔记1.10父类强转子类

父类强转子类的可能

Java中子类转换成父类是没有任何问题的,那父类可以转换成子类吗?

package javastudy;

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Father father1 = new Son();//new后面的Son改成Father将会导致两种不同结果!
		Son son1 = new Son();
		son1 = (Son)father1;
		father1.say();
		
	}
	
	static class Father{
	      
		public void say() {
			System.out.println("类型转换成功");
			
		}
	}	
	static class Son extends Father {
		
		
	}
	
}

运行结果:

Father father1 = new Son();

Father father1 = new Father();

 

.根据代码显示,  只有我们的父类对象本身就是用子类new出来的时候, 才可以在将来被强制转换为子类对象.

子类继承父类的所有(包括属性以及方法), 也就是说子类包含的内容应该是比父类要大的. 如果正常环境下, 把一个父类转换成子类一定会损失精度.  但是如果父类对象本身就是用子类去new出来的。

就类似于一个本来就是儿子角色的人, 去装了一会儿父亲, 这个角色是可以在未来转换回去的, 但是一个父亲, 永远不可能去装儿子的(滑稽)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值