2013-03-28 63 views
-5

例如,假設這種情況發生:在Java中,用不同類型的變量命名一個類型的對象到底是什麼?

DiscountSale discount = new DiscountSale(); 

那麼我這樣做:

Sale discount2 = discount; 

Sale是一個超和DiscountSale是子類。

從Sale或DiscountSale類訪問哪些方法定義時,究竟做了什麼?

我知道它引用內存中的同一個對象,但還有什麼?

+0

並不多。使用接口的原因是可以在一個地方更改實現。 – 2013-03-28 10:14:22

+0

我不確定什麼是合理的降價潮... – assylias 2013-03-28 10:17:33

+0

啊,我呢?我只是簡單地問一個問題而研究具體到我的答案沒有幫助。我想「專家」只想回答複雜的問題。 – 2013-03-28 10:18:39

回答

-1

您現在有2個同一對象的引用。使任一引用null不會讓gc仍然清除堆中的對象。您需要將兩者(全部,通常)引用爲空。

+1

應該避免設置對'null'的引用。 – 2013-03-28 10:15:58

+0

OP已經知道它引用了內存中的同一個對象。在發佈答案前,請正確閱讀問題。 – SudoRahul 2013-03-28 10:16:15

+0

@PeterLawrey任何具體原因 – Ankit 2013-03-28 10:17:03

相關問題