愛技術的Wade粉兒
2016-03-20 12:32:20
?A?a=?new?B();?A是父類,B是子類。這就是一個聲明了a的A類引用數據類型指向了new一個的B類對象。??他的意義是什么呢,是把B屬性和方法賦予A了。還是把A的賦予B了呢??
7 回答

了不了之
TA貢獻1條經驗 獲得超0個贊
這個問題是面向對象程序設計中的多態性,?
在父類A與子類B之間, 如果對B并沒有特別的要求,?所要用到的B類的方法都是從A類繼承重寫過來的,?
我們就可以把B類的一個實例C向上轉型看做A類的一個實例, 你學過繼承應該知道, 繼承關系可以說是"是一個"的關系,?
而面向對象編程在編譯的時候是只對方法的參數和返回值進行檢查的, 而并不確定執行的確切代碼,
被調用的代碼只有在運行期才確定, 此時的實例C雖然是父類A的實例, 調用的方法確實他本身B類里的重寫方法,
因而,當不同的實例被調用相同的方法, 都會執行他本身重寫的方法, 給予不同的響應, 這就是向上轉型;
添加回答
舉報
0/150
提交
取消