2013-03-28 20 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

相关问题