您好,登錄后才能下訂單哦!
這篇文章主要介紹java多態的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
首先來看這樣的一段代碼,其中對于類的定義如下:
class Parent{ public int myValue=100; public void printValue() { System.out.println("Parent.printValue(),myValue="+myValue); } } class Child extends Parent{ public int myValue=200; public void printValue() { System.out.println("Child.printValue(),myValue="+myValue); } }
我們來一個一個的回答問題:
1.運行結果如圖
2.對于這個運行結果的解釋,第一行第二行都是正常的調用,第三行中,將child賦給了parent 再進行的輸出,這時候我們發現結果變成了200 并且輸出語句也變了。
第四句,執行了parent.myValue++;但結果并沒有改變。第五行中,將parent類強行轉換為子類后又進行了自增,結果變成了201.
3.對于這里的分析,我們發現子類賦值給父類是沒有問題的,也就是說子類完全可以直接轉換成父類。第四行的語句結果還是200,說明他對于myValue的++還是調用了父類中的Value,但最后還是輸出了子類的Value.說明子類賦給父類后,只是一部分替代,并不是完全覆蓋。第五句里,將父類轉換成子類然后進行++,第四句第五句結合起來,可以說明子類賦值給父類,并不是所謂的覆蓋,只是把原本的東西給隱藏了罷了。而強制轉換后則不同,直接變成了子類。
最后,這其實告訴我們在實際應用中,我們不應該把父類和子類設置成相同的源代碼和成員變量,對于程序員在編程時的理解十分不利。
以上是“java多態的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。