一个自己写的类继承Date为什么在方法中输出this得到的是Date对象

public static void main(String[] args) {
new Test().test();
}

public void test(){
    System.out.println("this:" + this);
    System.out.println(super.getClass().getName());
}


运行结果
this:Wed Oct 24 17:24:01 CST 2018
month10.day24.Test

打印对象实际上是调用了对象的toString方法,你没有重写这个方法,就会查找你继承的Date类的toString方法,Date类的toString方法就是返回日期格式的字符串

那是因为如果你自己没有重写toString方法的话,默认会用父类的toString,以此类推;
因为Date类重写了toString,所以你这个this输出的是date的toString;
如果你想输出自己的,那么你可以重写toString方法;
如 :

  public String toString() {
        return date.getTime();
    }

那么这时候你的输出结果将是毫秒数;

希望对你有帮助....