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

Sud*_*eer 0 java

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

但是该toString()方法的定义使用了一个getName()未在Object类中定义的方法.(我知道该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.*/
  }
}
Run Code Online (Sandbox Code Playgroud)

上面给出了"test"作为输出而没有错误.

来到Object类它是根类,所以它不扩展任何其他类并且做任何工作它应该定义自己的方法.

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

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

Era*_*ran 6

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

t.getClass()返回一个实例Class<test>,其实例包含getName()方法.这允许你打电话t.getClass().getName().

  • 看看你的代码吧!您使用getClass()方法返回Class实例.就那么简单. (2认同)