我是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/