久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Java怎么正確地向上轉型和向下轉型

175次閱讀
沒有評論

共計 980 個字符,預計需要花費 3 分鐘才能閱讀完成。

在 Java 中,向上轉型是指將一個子類對象賦值給一個父類引用變量,向下轉型是指將一個父類引用變量強制轉換為其子類對象。

向上轉型示例:

class Animal {public void sound() {System.out.println("Animal makes sound");
    }
}

class Dog extends Animal {public void sound() {System.out.println("Dog barks");
    }
}

public class Main {public static void main(String[] args) {Dog dog = new Dog(); // 創建子類對象
        Animal animal = dog; // 向上轉型,將子類對象賦值給父類引用變量
        animal.sound(); // 調用父類引用變量的方法會執行子類的方法
    }
}

輸出結果為:

Dog barks

向下轉型示例:

class Animal {public void sound() {System.out.println("Animal makes sound");
    }
}

class Dog extends Animal {public void sound() {System.out.println("Dog barks");
    }
    
    public void fetch() {System.out.println("Dog fetches");
    }
}

public class Main {public static void main(String[] args) {Animal animal = new Dog(); // 創建父類引用變量指向子類對象
        Dog dog = (Dog) animal; // 向下轉型,強制將父類引用變量轉換為子類對象
        
        dog.fetch(); // 調用子類對象的方法
    }
}

輸出結果為:

Dog fetches

需要注意的是,向下轉型存在風險,如果父類引用變量指向的實際對象不是轉型后的類型,會導致運行時異常。因此,在進行向下轉型時,最好先使用 instanceof 運算符來判斷引用變量是否可以轉型為目標類型,以避免運行時異常的發生。

if (animal instanceof Dog) {Dog dog = (Dog) animal;
    dog.fetch();} else {System.out.println("Cannot downcast to Dog");
}

丸趣 TV 網 – 提供最優質的資源集合!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2024-01-29發表,共計980字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 渑池县| 前郭尔| 永修县| 土默特右旗| 土默特左旗| 神农架林区| 上思县| 连山| 怀集县| 施秉县| 贵港市| 南漳县| 鄂伦春自治旗| 漳平市| 富宁县| 吴忠市| 高要市| 琼海市| 宝坻区| 东台市| 东阿县| 错那县| 龙胜| 咸阳市| 北京市| 磴口县| 鸡东县| 固阳县| 和林格尔县| 公安县| 富锦市| 博客| 大荔县| 嵩明县| 光泽县| 沿河| 濮阳市| 乌拉特中旗| 峨边| 漳浦县| 聂荣县|