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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hbk000 中级黑马   /  2015-4-5 16:23  /  642 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 hbk000 于 2015-4-5 18:02 编辑

public class SuperDemo {
    public static void main(String[] args) {
        Fu f = new Zi();
    }
}
class Fu {
    int i = 4;
    Fu() {
        run();
        show();
    }
    void show() {
        System.out.println("Fu_test" + i);
    }
    void run() {
        System.out.println("Fu_test" + i);
    }
}
class Zi extends Fu {
    int j = 7;
    Zi() {
        super();
        show();
    }
    void show() {
        System.out.println("Zi_test" + "8" + j);
    }
}
结果是:
//Fu_test4
//Zi_test80
//Zi_test87
为什么第二个结果那边j只声明了,没有被赋值?

评分

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

查看全部评分

3 个回复

倒序浏览
我觉得应该是这样,因为构造函数哪里直接去给父类初始化了,而下边的j根本就没有初始化,没有执行到,执行完父类在回来子类初始化才执行到的
回复 使用道具 举报
程序都有错误,答案是怎么出来的
回复 使用道具 举报
ZQ822 发表于 2015-4-5 18:32
程序都有错误,答案是怎么出来的

没有错啊,eclipse亲测的!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马