super.getclass()的结果是父类还是子类?

package as;
import java.util.Date;

public class Test extends Date{
    public static void main(String[] args) {
        new Test().test();
    }
    public void test(){
    System.out.println(super.getClass().getSuperclass().getName());
    System.out.println(super.getClass().getName());
    }
}

输出结果为:

java.util.Date
as.Test

getClass()方法返回的是当前运行的类,super.getClass()时当前运行的类是Test类,和this.getClass()效果一样,返回as.Test

想获得父类可以用super.getClass().getSuperclass().getName();

				
时间: 2024-11-10 14:30:15

super.getclass()的结果是父类还是子类?的相关文章

【Java面试题】14 super.getClass()方法调用

下面程序的输出结果是多少? import java.util.Date; public class Test extends Date{ public static void main(String[] args) { new Test().test(); } public void test(){ System.out.println(super.getClass().getName()); } } 在test方法中,直接调用getClass().getName()方法,返回的是Test类名.

Java的super调用案例: super.getClass()返回的是子类自己

If you override a method from your superclass (or your superclass's superclass etc.), super.theMethod() will invoke the original method instead of the one you overrode it with. If you did not actual override theMethod, super.theMethod() will act exac

JavaSE8基础 当父类与子类中的成员变量重名了,使用super.名字 来访问父类的成员变量

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        代码: /* * 当父类与子类中的成员变量重名了,使用super.名字 来访问父类的成员变量 */ //基类 class Person { public int num = 1; } //子类 class Javaer extends Person { //子类中的成员变量与父类重名了 public int num

this.getClass()和super.getClass()得到的是同一个类

今天dubug代码时发现this.getClass()和super.getClass()得到的竟然是同一个类,都是当前类. 遍访网络资料得出: getClass()不受this和super影响,而是有当前的运行类决定的. 详细解释: getClass public final Class<? extends Object> getClass()返回一个对象的运行时类.该 Class 对象是由所表示类的 static synchronized 方法锁定的对象. 返回: 表示该对象的运行时类的 j

super.getClass()与this.getClass()

原文地址:http://leihuang.org/2014/11/14/getClass-method/ 首先看一段代码: import java.util.Date; public class Test extends Date{ public static void main(String[] args) { new Test().test(); } public void test(){ System.out.println(super.getClass().getName()); } }

java中父类与子类, 不同的两个类中的因为构造函数由于递归调用导致栈溢出问题

1 /* 2 对于类中对成员变量的初始化和代码块中的代码全部都挪到了构造函数中, 3 并且是按照java源文件的初始化顺序依次对成员变量进行初始化的,而原构造函数中的代码则移到了构造函数的最后执行 4 */ 5 import static java.lang.System.out; 6 7 public class PersonDemo 8 { 9 public static void main(String[] args) 10 { 11 //*********测试父类与子类之间的循环调用的问

java super.getClass问题

非常著名的坑了,简单描述就是在A的子类B中某个方法里调用super.get().getName();得到的是A还是B? 答案都是知道,是B.查阅了网上很多说法都是逆推法,例如下例: import java.util.Date; public class Test extends Date{ public static void main(String[] args) { new Test().test(); } public void test(){ System.out.println(sup

python——父类与子类的一些说明

Python中类的初始化方法是__init__(),因此父类.子类的初始化方法都是这个,如果子类不实现__init__()这个函数,初始化时调用父类的初始化函数, 如果子类实现了这个函数,则要在这个函数里显式调用一下父类的__init__(),这跟C++,jAVA不一样,他们是自动调用父类构造函数的. #初始化中调用父类初始化方法示例 #B是A的子类 class B(A): def __init__(self): super().__init__() 调用父类其他成员函数的三种方法:1. 直接写

父类和子类有相同成员变量时的例子

今天看到一个有趣的程序,如下: public class Test { public static void main(String[] args){ B b=new B(); b.bb(); } } class A{ private String a="a"; public void visit(){ System.out.println(this.a); System.out.println(this.getClass()); } } class B extends A{ priv