java - Object 类中如何使用 getName() 方法?

标签 java

我是JAVA语言的新学习者。在JAVA中,Object类是类层次结构中的根类(或)最顶层的 super 类(每个类都是Object的子类)。因此,我们创建的每个类都具有 Object 类的 11 个方法(如 JAVA API 中所述),我们可以使用它们,例如 toString() 方法。

但是toString()方法的定义使用了Object类中未定义的方法getName()。 (我知道toString()方法使用了getName()方法,因为我已经使用jd-gui查看安装在我的Object.class文件的源代码电脑)

如果我们创建一个java文件

class test {
   public static void main(String args[]) {
      test t = new test();
      System.out.println(t.getClass().getName());
/* Don't understand how I am able to use getName() method without extending any other
*class containing *getName() method.*/
  }
}

上面的输出为“test”,没有错误。

来到 Object 类,它是根类,因此它不会扩展任何其他类,并且要执行任何工作,它应该定义自己的方法。

我的问题是, 我们定义的 Object 类和类如何能够在其类中不定义 getName() 方法的情况下使用此方法?

除了 Object 类之外,是否还扩展了其他类?

最佳答案

getName()Class 的一种方法类,而不是 Object类(class)。 Object有一个getClass()返回 Class 的方法实例。

t.getClass()返回 Class<test> 的实例,其中有方法 getName() 。 这允许您调用 t.getClass().getName() .

关于java - Object 类中如何使用 getName() 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25592965/

相关文章:

java - java中未选中和选中复选框的httpservlet请求getparameter

java - 多部分文件字节表示

java - 如何在按下按钮时更新我的​​ TextArea?

java - 表格单元格上组件的 ActionEvent 未发生

java - 从eclipse启动tomcat 7出错

java - 如何在 hibernate 中对关联表进行排序?

java - String.valueOf(int value) 给出错误

java - PowerMock、mockito、验证静态方法

java - Jersey JAX-RS @Suspished 注释在 GAE 标准环境中不起作用

java - 如何使用一个附加队列(没有其他集合,可能是 JAVA 中的一些变量)反转队列中元素的顺序?