java代码输出结果的问题 下面这段代码输出“DemoDemo” 为什么不输出“DemoDate”?

publicclassDemoextendsDate{publicstaticvoidmain(String[]args){newDemo().yy();}publicv... public class Demo extends Date{
public static void main(String[] args) { new Demo().yy();
}
public void yy(){
System.out.print(this.getClass().getName());
System.out.print(super.getClass().getName());
}

}
展开
 我来答
jy03078584
2012-10-11 · TA获得超过471个赞
知道小有建树答主
回答量:444
采纳率:0%
帮助的人:267万
展开全部
很巧 这个面试题目 我刚好看过 LZ你看过API后会发现
因为Object的getClass()方法被定义为final 所以子类不能复写这个方法,所以super.getClass().getName()等效在子类中调用this.getClass.getName()都会返回Demo
若要得到Date应该使用getClass.getSuperClass().getName()
追问
弱弱地问句,super不就是代表父类吗? 为什么若要得到Date应该使用getClass.getSuperClass().getName() , 直接用super.getClass().getName();不就行了吗?
追答
super确实是代表父类 但是getClass()这个方法是Object的 而且是final的 是不能被子类复写的,API中的解释是用来返回当前Objec运行时的类。
在Demo这个类中调用getClass() 不论super.getClass()还是this.getClass都是在Demo这个类中调用的 返回的都是Demo
不知道我说清楚了没有
百度网友dfd5459
2012-10-11 · TA获得超过365个赞
知道小有建树答主
回答量:358
采纳率:0%
帮助的人:282万
展开全部
由于getClass()在Object类中定义成了final,子类不能覆盖该方法。所以无论this.getClass()还是super.getClass()其实调用的是同一个方法。那么就只需要看Object中的getClass()的实现,"返回的 Class 对象是由所表示类的 static synchronized 方法锁定的对象",也就是例子中的Demo对象
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
duzc2
2012-10-11 · TA获得超过2512个赞
知道大有可为答主
回答量:1987
采纳率:50%
帮助的人:2061万
展开全部
getClass()是从Object继承的,不管你怎么调,都是返回当前对象的类,super关键字是调用父类的方法,不是以父类调用方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
townsin
2012-10-11 · TA获得超过452个赞
知道小有建树答主
回答量:594
采纳率:50%
帮助的人:507万
展开全部
那是因为this.getClass和super.getClass得到的都是当前实例的类型,要想得到父类的类型应该这么用this.getClass().getSuperclass().getName();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1088b86
2012-10-11
知道答主
回答量:38
采纳率:0%
帮助的人:17.7万
展开全部
Returns the runtime class of this Object.这个是getClass()的解释。按照这样来看的话,getClass()得到的是运行时的类,也就是说即使你是用super.getClass()来弄的话得到的也是运行时的类,也就是demo。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友12ee0fd
2012-10-11 · TA获得超过4.7万个赞
知道大有可为答主
回答量:1.1万
采纳率:66%
帮助的人:2313万
展开全部
getClass().getSuperclass().getName()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式