黑马程序员技术交流社区

标题: 理论问题,太混乱了,把头都搞大了,求高手帮忙看看该 [打印本页]

作者: 胡建伟    时间: 2013-11-7 23:21
标题: 理论问题,太混乱了,把头都搞大了,求高手帮忙看看该
有这样三个类,Person、Student、GoodStudent。
其中GoodStudent继承于Student,Student继承于Person。
如何证明创建GoodStudent时是否调用了Person的构造函数?
在GoodStudent中是否能指定调用Student的哪个构造函数?
在GoodStudent中是否能指定调用Person的哪个构造函数?

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

作者: 卑微の小幸福    时间: 2013-11-7 23:33
这时多层继承关系。嗯代码很简单。  
一、你把没有构造函数内都写上不同输出语句,慢慢实验。具体代码就不写。  要是实验不出来你再留言吧!
二、能够
三、不能


作者: 零下五度的水    时间: 2013-11-7 23:33
GoodStudent时调用Person的构造函数:
    在Person的构造函数里输出:这是Person的构造函数
GoodStudent中指定调用Student的哪个构造函数:
    在GoodStudent的构造函数第一行写super(参数),调用哪个构造就按哪个构造的参数写实参
GoodStudent中指定调用Person的哪个构造函数
    这个应该不行
作者: Sasson    时间: 2013-11-7 23:48
  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. }
复制代码
无法直接指定调用父类的父类的构造函数




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