黑马程序员技术交流社区

标题: 关于多态的问题 [打印本页]

作者: hbk000    时间: 2015-4-5 16:23
标题: 关于多态的问题
本帖最后由 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只声明了,没有被赋值?


作者: 海贼王019    时间: 2015-4-5 17:36
我觉得应该是这样,因为构造函数哪里直接去给父类初始化了,而下边的j根本就没有初始化,没有执行到,执行完父类在回来子类初始化才执行到的
作者: ZQ822    时间: 2015-4-5 18:32
程序都有错误,答案是怎么出来的

作者: hbk000    时间: 2015-4-5 22:01
ZQ822 发表于 2015-4-5 18:32
程序都有错误,答案是怎么出来的

没有错啊,eclipse亲测的!




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