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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Moonboy2014 中级黑马   /  2014-6-13 13:24  /  1070 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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);
        }
}
这段代码能编译通过吗,请教各位高手,知道的给详细解答一下,感谢!

4 个回复

倒序浏览
把Student构造函数里的this.age = age;改成super(age);就能通过了
回复 使用道具 举报
闪耀.Q 发表于 2014-6-13 13:33
把Student构造函数里的this.age = age;改成super(age);就能通过了

恩,原因是啥啊:loveliness:
回复 使用道具 举报
我的理解哈,子类在构造函数中必须要调用父类的构造函数,这是Java规定的吧。你的Student构造函数中没有调用父类的构造函数。所以要把this.age=age;改成super(age);    我自己的理解还请指正!
回复 使用道具 举报
把 Student(int age)里面的   this.age = age; 换成 super(age)也可以
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马