課程
/后端開發
/Java
/Java入門第二季 升級版
為什么在實例方法或構造方法中System.out.println(this)能輸出地址,而System.out.println(super)會報錯,this和super不都是引用嗎,為啥不能輸出super的地址
2019-07-22
源自:Java入門第二季 升級版 9-7
正在回答
因為使用當前類的時候肯定會new當前類的對象,會在內存里為當前對象開辟一塊空間,System.out.println(this)就能把開辟出的內存地址輸出出來。反過來想,當前類繼承父類的時候,只是繼承父類的屬性和方法,在new當前類的時候,不會new一個父類,父類沒有被實例化,肯定是不被允許輸出地址的。不管什么類,只有被實例化的時候,才會有內存空間,不被實例化,僅僅是一串沒有被編譯的代碼而已。不知道你能理解我說的話嗎
舉報
課程升級!以終為始告別枯燥,在開發和重構中體會Java面向對象編程的奧妙
2 回答使用super訪問父類對象屬性
1 回答父類引用指向子類對象。
3 回答父類引用 子類對象 是什么意思
3 回答為什么要用父類的引用指向對象?
3 回答為什么要用父類的引用指向子類的對象?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2019-07-23
因為使用當前類的時候肯定會new當前類的對象,會在內存里為當前對象開辟一塊空間,System.out.println(this)就能把開辟出的內存地址輸出出來。反過來想,當前類繼承父類的時候,只是繼承父類的屬性和方法,在new當前類的時候,不會new一個父類,父類沒有被實例化,肯定是不被允許輸出地址的。不管什么類,只有被實例化的時候,才會有內存空間,不被實例化,僅僅是一串沒有被編譯的代碼而已。不知道你能理解我說的話嗎