有趣代码二

简介: 直接上代码: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());
	}
	
}
输出结果如下:

Super_Keyword

Super_Keyword


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

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

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

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

目录
相关文章
|
算法
几行代码带来的巨大变化
几行代码带来的巨大变化
68 0
|
6月前
|
前端开发 Java C++
一行代码就能完成的事情,为什么要写两行?
一行代码就能完成的事情,为什么要写两行?
|
设计模式 存储 Java
写出漂亮代码的45个小技巧(上)
大家好,我是三友~~ 不知道大家有没有经历过维护一个已经离职的人的代码的痛苦,一个方法写老长,还有很多的if else ,根本无法阅读,更不知道代码背后的含义,最重要的是没有人可以问,此时只能心里默默地问候这个留坑的兄弟。。
写出漂亮代码的45个小技巧(上)
|
存储 设计模式 安全
代码优雅的45个小技巧,你知道吗?
代码优雅的45个小技巧,你知道吗?
|
存储 设计模式 缓存
这45个小技巧,让你的代码突然又优雅了2
这45个小技巧,让你的代码突然又优雅了2
这45个小技巧,让你的代码突然又优雅了2
记一次代码评鉴
前言 近期公司组织了一次代码评鉴,在这边记录下学习到的一些规范吧
|
存储 分布式计算 并行计算
聊聊什么代码是好代码
聊聊什么代码是好代码
|
设计模式 消息中间件 前端开发
这45个小技巧,让你的代码突然又优雅了
这45个小技巧,让你的代码突然又优雅了
最近特火的爱心代码来了
最近因为一部《点燃我温暖你》的电视剧而爆火的爱心代码不会还有人不会制作吧。
最近特火的爱心代码来了
|
前端开发
代码为什么越写越乱?
这个问题往大的说是业务治理问题,往小了说是代码分拆。且看作者怎么写出好代码。
141 0