黑马程序员技术交流社区

标题: java构造函数的问题 [打印本页]

作者: Moonboy2014    时间: 2014-6-13 13:24
标题: java构造函数的问题
class Person
{
        int age;
        Person(int age)
        {
                this.age = age;
                //System.out.println(age);
        }
}
class Student extends Person
{
        Student(int age)
        {
                this.age = age;
                System.out.println("age="+age);
        }
       
}
class ExtendsDemo3
{
        public static void main(String[] args)
        {
                Student s = new Student(30);
        }
}
这段代码能编译通过吗,请教各位高手,知道的给详细解答一下,感谢!
作者: 闪耀.Q    时间: 2014-6-13 13:33
把Student构造函数里的this.age = age;改成super(age);就能通过了
作者: Moonboy2014    时间: 2014-6-13 13:37
闪耀.Q 发表于 2014-6-13 13:33
把Student构造函数里的this.age = age;改成super(age);就能通过了

恩,原因是啥啊:loveliness:
作者: 闪耀.Q    时间: 2014-6-13 13:40
我的理解哈,子类在构造函数中必须要调用父类的构造函数,这是Java规定的吧。你的Student构造函数中没有调用父类的构造函数。所以要把this.age=age;改成super(age);    我自己的理解还请指正!
作者: Без_тебя    时间: 2014-6-13 22:32
把 Student(int age)里面的   this.age = age; 换成 super(age)也可以




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