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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 高双武 黑马帝   /  2011-11-23 22:19  /  1723 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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);
}
}

运行之前自己看一下结果是什么?你答对了吗?

5 个回复

正序浏览
子类继承父类,调用子类的构造方法时 首先 先调用其父类的构造方法
回复 使用道具 举报
冯敏 黑马帝 2011-11-25 08:35:29
报纸
对,我做的时候就是忽略了这关键的一点
回复 使用道具 举报
子类在执行自己的构造方法之前默认要先调用父类的无参构造方法。是吗?
回复 使用道具 举报
冯敏 黑马帝 2011-11-24 11:26:36
藤椅
本帖最后由 xiaoyu_min 于 2011-11-24 11:32 编辑

输出结果应该是3和10吧,运行测试一下,错了,不大明白,不是调用B类的带参构造吗

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
B(int b){
                super();
                 age=b;
                 System.out.println(age);
         }      

这样写大家都懂了

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马