您的位置:首页 > 职场人生

一个Java面试题

2013-01-24 23:10 295 查看
class Human {

public static int n = 10;

public Human() {

// 和C++中不同的是,虽然子类还未构造完成,但仍然可以调用子类的age函数,

// 显然,Java不是通过虚表实现的多态,看起来多态就是天生的,永远都是调用实际对象的成员函数

age();

}

public void age() {

System.out.println("The age = " + n);

}

}

public class HumanAction extends Human {

private int n = 20;

public void age() {

System.out.println("The age = " + n); // 此时n还未构造,所以默认值为0

}

public static void main(String[] args) {

new HumanAction();

}

}

// The age = 0

由此可见,父类的初始化要先于成员变量的初始化,这点和C++是一样的。注意,成员变量的初始化是先于构造函数的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐