父类与子类之间的关系
1) 運行課件中的例題ParentChildTest.java,回答下列問題:
a) 左邊的程序運行結果是什么?
?
b) 你如何解釋會得到這樣的輸出?
第一個創建一個Parent對象,調用的是父類構造方法
第二個創建一個Child對象,調用的是子類的構造方法
第三個將子類的child的值賦給了parent,調用的是子類的構造方法
第四個parent.myValue++是對父類中的變量進行自加運算,而parent.printValue()實際上還調用的還是子類的構造方法
第五個((child)parent).myValue++是將parent對象強制轉化成Child,所以指向的是Child類中的變量進行自加運算之后輸出的。
Parent對象創建時并不是創建的Child或Child的子類,那么是不能強制轉換成子類的
不能把孩子的賦給父親,在這個程序中必須是孩子繼承父親。
c) 計算機是不會出錯的,之所以得到這樣的運行結果也是有原因的,那么從這些運行結果中,你能總結出Java的哪些語法特性?
當子類與父類擁有一樣的方法,并且讓一個父類變成一用一個子類對象時,調用方法由對象自己的“真實”類型所決定,對象是子類型的,它就調用子類型的方法,是父類型的,它就調用父類型的方法。
如果子類與父類有相同的的字段,則子類中的字段會代替或隱藏父類的字段,子類方法中訪問的是子類中的字段,而不是父類中的字段。如果子類方法確實想訪問父類中被隱藏的同名字段,可以用super關鍵字來訪問它。
如果子類被當作父類使用,則通過子類訪問的字段是父類的。
轉載于:https://www.cnblogs.com/94qq/p/4959208.html
總結
以上是生活随笔為你收集整理的父类与子类之间的关系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gdb命令中attach使用
- 下一篇: 精心整理Node.js入门---原理篇