關于JAVA的this關鍵字
關于JAVA的this關鍵字【專家解說】:1.this表示的是指向一個實例嗎。如果不是指向一個實例,那么為什么this可以參與instanceof運算或當作引用參數(shù)傳進方法里,su
1.this表示的是指向一個實例嗎。如果不是指向一個實例,那么為什么this可以參與instanceof運算或當作引用參數(shù)傳進方法里,super為什么不能?
-- this表示的是指向一個實例。 System.out.println(s instanceof SubT3);//false 這個地方之所以返回false 是因為 s的類型是 SuperT3 所以 “s instanceof SubT3” 是返回false
2.如果this表示當前對象,那么我在第4行new的SubT3的實例,在第14行為什么沒有打印出peter呢。
--首先說this的類型是SubT3 這是確定的,所以this instanceof SuperT3 和 this instanceof SubT3都是true. 第14行打印出Jack是正確的。要從內(nèi)存結構看,子類是無法覆蓋父類的成員變量的,所以對于SubT3 來說里面有兩個 name, 一個是Jack 一個是peter。那么究竟是調(diào)用哪個name呢?是調(diào)用基類的name,因為成員變量是不能重載的,也就是說 調(diào)用成員變量的函數(shù)在基類中 則使用基類的成員變量 調(diào)用成員變量的函數(shù)在子類中則使用子類中的成員變量。 如果想要 輸出peter,只需要在SubT3 重載func 也就是將func的代碼復制在SubT3中 就會輸出peter. 記?。撼蓡T變量是不會被重載的 只有 函數(shù)會被重載。
3.如果在第14行時,this只表示SuperT3的引用(我也不知道到底引用什么),那為什么第16行沒有打印出與第6行相同的結果呢?
--看第2條的回答 this不是superT3 是 subT3 只是因為成員變量是無法重載的 依賴于調(diào)用它的函數(shù)所在類。
另外說明一下,如果基類的成員變量可以被同名的子類中成員變量替換,那會產(chǎn)生災難的后果。比如基類中有個數(shù)組 里面存儲了一些 標識 比如 0 1 2 而在子類中 聲明了同樣一個名字的數(shù)組 里面是 3 4 5 那么基類運行到基類的方法的時候 本來處理 0 1 2 現(xiàn)在卻處理 3 4 5 會產(chǎn)生不可預知的結果。如果想改變基類的行為 重載他的函數(shù) 重新定義新的行為。
希望能幫到你
-
該圖是我國某地生態(tài)農(nóng)業(yè)系統(tǒng)圖。讀圖,回答13~14題。 小題1:圖中各字母代表的含義,正確的是 ①a一糧2024-08-17
-
93號、90號汽油其中的標號有什么含義,0號柴油、-10號柴油呢?2024-08-17
-
求教:無負壓供水設備型號的含義是什么2024-08-17
-
請教大蝦 無負壓給水供水設備 50ZWG2/5-13 型號含義是什么2024-08-17
-
求教:無負壓供水設備型號的含義是什么2024-08-17
-
“低碳新生活”作文征文要求思考低碳生活與節(jié)能減廢的含義,宣傳綠色環(huán)保,探討低碳節(jié)...2024-08-17
-
無負壓供水設備型號WWG20-40-2的含義是什么,WWG代表什么2024-08-17
-
請問石油鉆井中的鉆具代碼及其具體含義,以及配合接頭的數(shù)字具體代表什么意思?求高手解答!2024-08-17
-
“風能進,雨能進,國王不能進”這個典故有什么含義2024-08-17
-
綠色建筑的含義???2024-08-17
-
作文“門其實開著”有哪幾層含義?2024-08-17
-
請教非晶硅薄膜太陽能電池中的 P N I 都是什么含義?2024-08-17
-
誰知道在石油工程中 油壓,套壓,流壓,靜壓的概念和地理含義2024-08-17
-
學會計~會計科目的意思及借貸方含義2024-08-17
-
工科的具體含義是什么?2024-08-17