【Java_基礎】Java中強制類型轉換


首先,狹義上的強制類型轉換指的是引用類型,且是父類向子類轉換,這種轉換只牽扯到引用名義類型的轉換,具體的對象內存沒有發生一點變化。

而基本類型的轉換與此不同,其數據確實發生了變化。如果是基本類型和其包裝類的相互轉化,實際上調用是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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM