黑马程序员技术交流社区

标题: 如何证明子类对象在创建时是否调用了父类对象 [打印本页]

作者: 汪小照    时间: 2012-9-21 18:53
标题: 如何证明子类对象在创建时是否调用了父类对象
本帖最后由 汪小照 于 2012-9-22 12:12 编辑

有这样三个类,Person,Student.GoodStudent。其中Student继承了Person,GoodStudent继承了Student,三个类中只有默认的构造函数,用什么样的方法证明在创建Student类的对象的时候是否调用了Person的构造函数,在创建GoodStudent类的对象的时候是否调用了Student构造函数?如果在创建Student对象的时候没有调用Person的构造函数,那么采用什么样的手段可以调用父类的构造函数?


作者: 赵宇    时间: 2012-9-21 19:00
在构造方法里打印一句话不就知道了
作者: 赵宇    时间: 2012-9-21 19:01
调用父类的构造可以在子类构造中写 this.super()

作者: 赵宇    时间: 2012-9-21 19:03
想看的更清楚的话打断点跟一下就知道了         版主 我不是恶意刷屏  我是断断续续的想办法。

作者: 严海荣    时间: 2012-9-21 19:08
  1. class Person{
  2.         Person(){
  3.                 System.out.println("Person!");
  4.         }
  5. }

  6. class Student extends Person{
  7.         Student(){
  8.                 System.out.println("Student!");
  9.         }
  10. }
  11. public class GoodStudent extends Student {

  12.         GoodStudent(){
  13.                 System.out.println("GoodStudent!");
  14.         }
  15.        
  16.         public static void main(String[] args) {
  17.                 new Student();
  18.                 System.out.println("-------");
  19.                 new GoodStudent();
  20.         }
  21. }
复制代码
在默认构造函数中打印个语句就可以知道了。
创建Student对象调用了Person的构造函数。
调用GoodStudent对象调用了Student的构造函数,同时也调用了Person的构造函数。
记住:子类继承父类,父类的属性和方法都在子类中有一份,只是被隐藏了。
作者: 聽聽我dē❤    时间: 2012-11-15 19:51
嗯,说的对,但感觉这有点和题意不同了,“三个类中只有默认的构造函数”???




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2