Java父类强制转换子类原则
生活随笔
收集整理的這篇文章主要介紹了
Java父类强制转换子类原则
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
轉載自?Java父類強制轉換子類原則
最近,微信群友在討論子類父類的轉換問題,其實不難,給大家用實例來說明一下就很明了了。
我們知道Java中子類轉換成父類是沒有任何問題的,那父類可以轉換成子類嗎?
來看下面這段程序:
public class TestObjectConvert { ? ?public static void main(String[] args) {test1();test2();} ? ?private static void test1() {Fruit fruit1 = new Fruit();Apple apple1 = new Apple();apple1 = (Apple) fruit1; // java.lang.ClassCastException} ? ?private static void test2() {Fruit fruit1 = new Apple();Apple apple1 = new Apple();apple1 = (Apple) fruit1;} ? ?static class Fruit { ? ?} ? ?static class Apple extends Fruit { ? ?} }結果是:
test1:報類轉異常; test2:轉換正常。所以,想讓父類強制轉換成子類,不是沒有可能,除非父類是子類構造出來的實例,不然是不能強轉的。
為什么呢?
如上代碼,如果父類實例出來的對象是Orange,Orange當然不能強制轉成Apple,所以說父類只有該子類對應的實例才能強轉。
總結
以上是生活随笔為你收集整理的Java父类强制转换子类原则的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 递归算法介绍及Java应用实战
- 下一篇: java美元兑换,(Java实现) 美元