码迷,mamicode.com
首页 > 编程语言 > 详细

【Java_基础】Java中强制类型转换

时间:2019-08-08 23:49:34      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:对象内存   强制类型转换   value   报错   over   完成   内存   父类   col   

首先,狭义上的强制类型转换指的是引用类型,且是父类向子类转换,这种转换只牵扯到引用名义类型的转换,具体的对象内存没有发生一点变化。

而基本类型的转换与此不同,其数据确实发生了变化。如果是基本类型和其包装类的相互转化,实际上调用是Integer.parseInt()和Integer.valueOf()来完成。

父类向子类进行强制转换,如果成功不会有任何数据丢失,如果不是其子类,那么会报错。基本类型之间的转换,如果是大范围的向小范围的转换,确实有可能会发生数据丢失或精度丢失。
实例:
public class Main {
    public static void main(String[] args) {
        Base base = new Child();
        base.test();
        System.out.println(base.getClass().getName());
        base = (Base) base;
        base.test();
        System.out.println(base.getClass().getName());
    }
}

class Base {
    public void test() {
        System.out.println("我是父类方法");
    }
}

class Child extends Base {
    @Override
    public void test() {
        System.out.println("我是子类方法");
    }
    public void childSelf(){
        System.out.println("我不是重写了父类的方法");
    }
}

运行结果:

我是子类方法
com.hubu.zhoulei.algorithm.Child
我是子类方法
com.hubu.zhoulei.algorithm.Child

【Java_基础】Java中强制类型转换

标签:对象内存   强制类型转换   value   报错   over   完成   内存   父类   col   

原文地址:https://www.cnblogs.com/leiblog/p/11324153.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!