java中向上轉型和向下轉型

轉型是在繼承的基礎上而言的,繼承是面嚮對象語言中,代碼複用的一種機制,通過繼承,子類可以複用父類的功能,如果父類不能滿足當前子類的需求,則子類可以重寫父類中的方法來加以擴展。
向上轉型:子類引用的對象轉換爲父類類型稱爲向上轉型。通俗地說就是是將子類對象轉爲父類對象。此處父類對象可以是接口
向下轉型:父類引用的對象轉換爲子類類型稱爲向下轉型。
如以下案例
public class A {
        public static void main(String[] args) {
            Person person = new Son();//向上轉型
            person.name();//向上轉型的方法只有name方法,找不到Age方法
            
        //    Son sonerror = (Son) new Person();//錯誤的向下轉型,編譯通過,運行報錯
        //    sonerror.Age();

            if(person instanceof Son)
            {
            Son son =  (Son) person;//正確的向下轉型
            son.Age();
            son.name();
            }
        }
}


class Person{
    void name(){
        System.out.println("this is Person name");
    }
}

class Son extends Person{
    @Override
    void name() {
        System.out.println("this is Son name");
    }
    
    void Age(){
        System.out.println("this is Son age");
    }
}
發佈了27 篇原創文章 · 獲贊 2 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章