黑马程序员技术交流社区

标题: 求大哥哥们指教 [打印本页]

作者: 不服™け你咬我    时间: 2014-8-29 22:51
标题: 求大哥哥们指教
有这样三个类,Person、Student、GoodStudent。
其中GoodStudent继承于Student,Student继承于Person。
如何证明创建GoodStudent时是否调用了Person的构造函数?
在GoodStudent中是否能指定调用Student的哪个构造函数?
在GoodStudent中是否能指定调用Person的哪个构造函数?
作者: 孤守星空    时间: 2014-8-29 22:56
你在构造函数中加一句out.print就可以看到结果了
作者: 笑脸迷人    时间: 2014-8-29 23:01
所有构造函数都打印点不同的东西就可以去验证了~
使用super(参数列表):调用符合参数列表的父类构造函数;必须写在子类第一行
GoodStudent中是否能指定调用Person的哪个构造函数?
一般这是不能的,GoodStudent只能调用自己父类Student的构造方法,自己父类Student的构造方法又会去调用Person的构造方法,一层层调用上去的;
除非楼主你自己去编写java的源代码,期待哪一天!
作者: 黄小橙    时间: 2014-8-30 10:50
如何证明创建GoodStudent时是否调用了Person的构造函数?
  1. public Person()
  2. {
  3. System.out.println("调用person()");
  4. }
复制代码

在GoodStudent中是否能指定调用Student的哪个构造函数?
  1. class Student
  2. {
  3. private String name;
  4. public Student(){}
  5. public Student(Stirng name)
  6. {
  7. this.name = name;
  8. }
  9. }
  10. class GoodStudent extends Student
  11. {
  12. public GoodStudent(String name)
  13. {
  14. super(name);//这里调用的是Student类中的Student(String name)构造函数
  15. }
  16. }
  17. //也就是说需要调用父类的哪个构造函数,就给super()传入相对应的参数即可。
复制代码

在GoodStudent中是否能指定调用Person的哪个构造函数?
同上,GoodStudent可以通过super调用父类Student的构造函数,Student可以通过super调用Person的构造函数。
作者: 怀念黑海岸    时间: 2014-8-30 12:29
  你这个层次结构貌似不对吧,你student类都没继承person类,那么你怎么使用person类中定义的构造函数呢?




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