A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

有这样三个类,Person、Student、GoodStudent。
其中GoodStudent继承于Student,Student继承于Person。
如何证明创建GoodStudent时是否调用了Person的构造函数?
在GoodStudent中是否能指定调用Student的哪个构造函数?
在GoodStudent中是否能指定调用Person的哪个构造函数?

希望附上详细解释,这问题理论性太强,把自己搞蒙圈了

评分

参与人数 1技术分 +1 收起 理由
To + 1 神马都是浮云

查看全部评分

3 个回复

正序浏览
  1. class Demo {
  2.         public static void main(String[] args) {
  3.                 GoodStudent g = new GoodStudent();
  4.         }
  5. }
  6. class Person {

  7.         //Person构造函数
  8.         Person(){
  9.                 System.out.println("Person的无参构造函数");
  10.         }
  11. }
  12. class Student extends Person{

  13.         //Student构造函数
  14.         Student(){
  15.                 System.out.println("Student的无参构造函数");
  16.         }

  17.         //Student构造函数
  18.         Student(String name){
  19.                 super();//super();语句调用父类中的无参构造函数
  20.                 System.out.println("Student的有参构造函数");
  21.         }
  22. }

  23. class GoodStudent extends Student{

  24.         //GoodStudent构造函数
  25.         GoodStudent(){
  26.                 System.out.println("GoodStudentn的无参构造函数");
  27.         }

  28.         //GoodStudent构造函数
  29.         GoodStudent (String name){
  30.                 super();//super();语句调用父类中的无参构造函数
  31.                 System.out.println("GoodStudentn的有参构造函数");
  32.         }
  33. }
复制代码
无法直接指定调用父类的父类的构造函数
回复 使用道具 举报
GoodStudent时调用Person的构造函数:
    在Person的构造函数里输出:这是Person的构造函数
GoodStudent中指定调用Student的哪个构造函数:
    在GoodStudent的构造函数第一行写super(参数),调用哪个构造就按哪个构造的参数写实参
GoodStudent中指定调用Person的哪个构造函数
    这个应该不行
回复 使用道具 举报
这时多层继承关系。嗯代码很简单。  
一、你把没有构造函数内都写上不同输出语句,慢慢实验。具体代码就不写。  要是实验不出来你再留言吧!
二、能够
三、不能

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马