黑马程序员技术交流社区

标题: 关于继承的问题 [打印本页]

作者: 幕丶落    时间: 2015-4-7 09:11
标题: 关于继承的问题
class Super
{
        int i=0;
        public Super(String s)
        {
                i=1;
        }
}
class Demo extends Super
{
       
        public Demo(String s)
        {
                i=2;
        }
        public static void main(String[] args)
        {
                Demo d=new Demo("yes");
                System.out.println(d.i);
        }
}
这是毕老师视频中的一道题,但是听完之后不是很明白,希望大神帮忙解释一下,谢谢了
作者: 一袭蓝10    时间: 2015-4-7 09:56
不是大神,共同学习了
作者: doomsday    时间: 2015-4-7 10:08
Demo构造的第一行必须指定super(String s),应为父类没有空参数的构造函数,不然会编译失败的
作者: 一袭蓝10    时间: 2015-4-7 10:29
在对子类对象进行初始化时,父类的构造函数也会执行,子类构造函数第一行有一条隐式的语句super()因为这样父类的数据子类可以直接获取。如果父类中没有空参数的构造函数,子类必须手动通过super形式来访问父类构造函数。而你的代码是错的编译不通过,你要在子类构造函数第一行添加一句super(s);
作者: vayne    时间: 2015-4-7 10:54
这段代码应该是想让我们知道的第一点是:如果父类有参数的构造函数,子类必须向父类传递这个参数;第二点:就是输出的i为2




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