黑马程序员技术交流社区

标题: 看一看他的结果是什么? [打印本页]

作者: 高双武    时间: 2011-11-23 22:19
标题: 看一看他的结果是什么?
package eclipsedbug;
class A{
        int age=10;
        A(){
                System.out.println(age);
        }       
}
class B extends  A{
        B(){
                System.out.println(20);
        }
        B(int b){
                age=b;
                System.out.println(age);
        }       
}
public class ExtendsDemo{
        public static void main(String [] args){
        B b=new B(3);
        System.out.println(b.age);
        System.out.println(new A().age);
}
}

运行之前自己看一下结果是什么?你答对了吗?
作者: 梁锡伟    时间: 2011-11-23 23:12
B(int b){
                super();
                 age=b;
                 System.out.println(age);
         }      

这样写大家都懂了
作者: 冯敏    时间: 2011-11-24 11:26
本帖最后由 xiaoyu_min 于 2011-11-24 11:32 编辑

输出结果应该是3和10吧,运行测试一下,错了,不大明白,不是调用B类的带参构造吗
作者: 颜小飞    时间: 2011-11-25 07:41
子类在执行自己的构造方法之前默认要先调用父类的无参构造方法。是吗?
作者: 冯敏    时间: 2011-11-25 08:35
对,我做的时候就是忽略了这关键的一点
作者: wanghongye    时间: 2011-11-25 18:33
子类继承父类,调用子类的构造方法时 首先 先调用其父类的构造方法




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