有趣代码二

简介: 直接上代码:import java.util.Date;public class Super_Keyword extends Date { public static void main(String[] a...

直接上代码:

import java.util.Date;

public class Super_Keyword extends Date {

	public static void main(String[] args) {
		Super_Keyword sk = new Super_Keyword();
		sk.test();
	}

	public void test() {
		System.out.println(this.getClass().getName());
		System.out.println(super.getClass().getName());
	}
	
}
AI 代码解读
输出结果如下:

Super_Keyword

Super_Keyword


这里也许一不注意,就认为输出结果是Super_Keyword和Date。

这个getClass()实在Object中定义的,其声明为了final native 。也就是说该方法是不能被子类覆盖的。所以this.getClass()与super.getClass()实际上都是调用的同一个方法,都是得到调用者的Class 对象。所以两行代码的输出都是 Super_Keyword。

如果想要得到父类的类名,需要使用this.getClass().getSuperClass().getName();

其实犯上面的错的原因就是不够仔细,被那个super给忽悠了。

目录
打赏
0
0
0
0
1
分享
相关文章
长见识,让大家看看什么是垃圾代码
长见识,让大家看看什么是垃圾代码
131 0
写出漂亮代码的45个小技巧(下)
大家好,我是三友~~ 不知道大家有没有经历过维护一个已经离职的人的代码的痛苦,一个方法写老长,还有很多的if else ,根本无法阅读,更不知道代码背后的含义,最重要的是没有人可以问,此时只能心里默默地问候这个留坑的兄弟。。
写出漂亮代码的45个小技巧(下)
一行代码就能完成的事情,为什么要写两行?
一行代码就能完成的事情,为什么要写两行?
每天写出好代码的5个建议
成为一个优秀的程序员和成为其他优秀的专业人员一样,需要尽可能多的做一些有质量的工作。有句很流行的话可以总结:做,正确做事,立马就做。(Do it. Do it right. Do it right now) 1.将一天要做的事情列成清单 完成复杂活动(activity)的最好方法是将其拆分成简单的各项活动。
516 0
不懂的代码要先背下来吗?
【学生提问】   老师对于有些程序设计的代码写法,不理解的时候,我是不是应该先背下来,或者做个记录,以后要用的时候,再参考,还是用什么方式彻底弄懂?这个对于算法的理解,有什么提高的方法和步骤吗? 【答复】   首先,我不赞成在不理解的情况下强记的方法。不理解先强记,对于某些少数的人文类知识,如诗词,是可以的,因为那些内容,一字不差是基本要求。各学科都有其内在逻辑,对绝大
1189 0
无代码的未来
随着无代码技术越来越成熟,很多web应用已经可以基于无代码平台进行开发。本文分析了4个最流行的无代码平台,并梳理了无代码行业今后可能的发展方向。
472 0
无代码的未来
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等