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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 陈虹旭 于 2012-9-14 18:39 编辑
  1. class Person
  2. {
  3. private String name;
  4. Person(String name)
  5. {
  6. this.name = name;
  7. }

  8. void show(){}
  9. }
  10. class Student extends Person
  11. {
  12. Student(String name)
  13. {
  14. super(name);//<FONT color=red>这里有点转不过来,super(name)是调用父类构造函数没错,但是父类是Person,子类是Student,虽然是沿袭功能,但是到底是谁在调用构造函数呢?
  15. </FONT>}
  16. void method()
  17. {
  18. super.show();
  19. }
  20. }

  21. <FONT color=black>super(name)是调用父类构造函数没错,但是父类是Person,子类是Student,虽然是沿袭功能,但是到底是谁在调用构造函数呢?
  22. 顺便弱弱的问以下,这里的name是不是实际参数的name!有点被同名name搞混了,成当局者了,有旁观者没?呵呵
  23. </FONT>
复制代码

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

7 个回复

倒序浏览
这里的name是形参,传递给Person的实参private String name;

然后,是在创建子类实例化对象的时候,进行子类在构造函数的时候,去调用了父类构造函数
回复 使用道具 举报
在JAVA中,对于子类调用父类的构造方法可以做出如下解释: 子类无条件地继承父类的不含参数的构造方法。
    如果子类自己没有构造方法,则它将继承父类的无参数构造方法作为自己的构造方法;如果子类自己定义了构造方法,则在创建新对象时,它将先执行继承自父类的无参数构造方法,然后再执行自己的构造方法。
    对于父类含参数的构造方法,子类可以通过在自己的构造方法中使用 super 关键字来调用它,但这个调用语句必须是子类构造方法的第一个可执行语句。
回复 使用道具 举报
Student类是Person类的子类
Student s=new Student("Jim");
创建对象s时,调用构造函数Student(String name),
在构造函数中的第一行会默认隐式调用父类的无参构造函数super(),
也可手动调用super(String name)。
子类中的super(String name)就是父类中的Person(String name),
name是个形式参数,是一个构造函数中的局部变量,它在内存的栈区中。
当你创建对象时,如下:
Student s=new Student("Jim");
会给name变量赋值为"Jim"字符串。
当用来初始化的构造函数执行完毕后,name这个局部变量会随着函数的结束而释放。
this.name是成员变量,当对象创建时,系统会在内存的堆区中为它分配空间,
它随着对象的释放而释放。
回复 使用道具 举报
田旭阳 发表于 2012-9-14 18:10
在JAVA中,对于子类调用父类的构造方法可以做出如下解释: 子类无条件地继承父类的不含参数的构造方法。
    ...

谢谢你的解答,那super(name)里的name到底是实际参数还是形式参数呢,我有点弄不清形式参数和实际参数的定义了
回复 使用道具 举报
丁旭 发表于 2012-9-14 18:33
Student类是Person类的子类
Student s=new Student("Jim");
创建对象s时,调用构造函数Student(String name ...

谢谢,很透彻...
回复 使用道具 举报
丁旭 中级黑马 2012-9-14 18:53:05
7#
其实形参就是函数中的一个普通的局部变量,存在于栈区中。
当调用这个函数时,就必须为形参赋值了。
你可以使用eclipse写个小程序,加上断点,一步步调式,你就会看到程序执行的每一步,变量的值的变化。
回复 使用道具 举报
丁旭 发表于 2012-9-14 18:53
其实形参就是函数中的一个普通的局部变量,存在于栈区中。
当调用这个函数时,就必须为形参赋值了。
你可以 ...

不过我到现在还不会使用eclipse呢,会加油的,以后一定会的!谢谢哦!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马