java泛型类方法调用的问题

代码如下:publicclassDateIntervalTest{publicstaticvoidmain(String[]args){//TODOAuto-genera... 代码如下:
public class DateIntervalTest {

public static void main(String[] args) {
// TODO Auto-generated method stub
Throwable t = new Throwable();
StackTraceElement[] trace = t.getStackTrace();
for(StackTraceElement f : trace)
System.out.println(f + "Main");
DateInterval interval = new DateInterval();
Object aDate = new Date();
Date bDate = new Date();
Pair<Date> pair = interval;
Pair pair2 = interval;
pair.setSecond(bDate);
interval.setSecond(bDate);
interval.setSecond(aDate);
pair2.setSecond(bDate);
pair2.setSecond(aDate);
}

}
class Pair<T> {
public Pair(){
first = null;
second = null;
}
public Pair(T first, T second){
this.first = first;
this.second = second;
}

public T getFirst(){ return first; }
public T getSecond(){ return second; }

public void setFirst(T first){ this.first = first; }
public void setSecond(T second){
Throwable t = new Throwable();
StackTraceElement[] trace = t.getStackTrace();
for(StackTraceElement f : trace)
System.out.println(f + "Pair");
this.second = second;
}

private T first;
private T second;
}
class DateInterval extends Pair{
public void setSecond(Date second){
Throwable t = new Throwable();
StackTraceElement[] trace = t.getStackTrace();
for(StackTraceElement f : trace)
System.out.println(f + "DateInterval");
}
}

运行结果是这样的:
DateIntervalTest.main(DateIntervalTest.java:9)Main
Pair.setSecond(Pair.java:18)Pair
DateIntervalTest.main(DateIntervalTest.java:19)Pair
DateInterval.setSecond(DateIntervalTest.java:30)DateInterval
DateIntervalTest.main(DateIntervalTest.java:20)DateInterval
Pair.setSecond(Pair.java:18)Pair
DateIntervalTest.main(DateIntervalTest.java:21)Pair
Pair.setSecond(Pair.java:18)Pair
DateIntervalTest.main(DateIntervalTest.java:22)Pair
Pair.setSecond(Pair.java:18)Pair
DateIntervalTest.main(DateIntervalTest.java:23)Pair

问题:

pair,pair2和interval对象应该是同一个引用吧?为什么明明调用同一个方法,只有interval.setSecond(bDate)是调用DateInterval类的方法?可以把调用的过程或原理给我讲一下吗?谢谢
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)
谁是我亲爱的啊
2014-10-02 · 超过90用户采纳过TA的回答
知道小有建树答主
回答量:176
采纳率:0%
帮助的人:107万
展开全部
刚大概看了一下你的程序,你可以看看THIS这块的内容,我确信你应该是不太明白这个,如果你懂了这个。你这个问题也不会提出来了。
看懂请采纳;/
更多追问追答
追问
。。。不懂,可以麻烦你细说一下么
追答
你可以这样试;
public Pair(){
this.first = null;
this.second = null;
}
这个地方这样改一下即可,看懂请采纳;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式