请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

java知识分享-我的java记事本

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 769|回复: 0

super.getClass()方法调用

[复制链接]

131

主题

132

帖子

573

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
573
发表于 2015-3-15 23:08:49 | 显示全部楼层 |阅读模式
下面程序的输出结果是多少?
  1. importjava.util.Date;
  2. public class Test extends Date{
  3.     public static void main(String[] args) {
  4.        new Test().test();
  5.     }
  6.    
  7.     public void test(){
  8.        System.out.println(super.getClass().getName());
  9.     }
  10. }
复制代码

很奇怪,结果是Test
这属于脑筋急转弯的题目,在一个qq群有个网友正好问过这个问题,我觉得挺有趣,就研究了一下,没想到今天还被你面到了,哈哈。
test方法中,直接调用getClass().getName()方法,返回的是Test类名
由于getClass()Object类中定义成了final,子类不能覆盖该方法,所以,在
test方法中调用getClass().getName()方法,其实就是在调用从父类继承的getClass()方法,等效于调用super.getClass().getName()方法,所以,super.getClass().getName()方法返回的也应该是Test
如果想得到父类的名称,应该用如下代码:
getClass().getSuperClass().getName();

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|java知识分享 ( 闽ICP备14003021号-4   

GMT+8, 2019-3-26 04:56 , Processed in 0.065489 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表
束丝机    单机除尘器    深圳seo    日照网站建设    海参    股票配资    抖音刷赞    梦幻西游私服    艺网卡盟    yy4480    粉丝福利购    声雨竹官方旗舰店    小可爱直播app下载    蓝冠注册    深圳自考网    创业者论坛    幸运赛车    新辉煌寿宁红石材厂