1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Java成员变量初始化和构造函数顺序

Java成员变量初始化和构造函数顺序

时间:2019-03-15 17:33:00

相关推荐

Java成员变量初始化和构造函数顺序

1、Java虚拟机会将所有的初始化动作手机到<init>()方法中,在分配内存后,就开始调用<init>()方法,其中,成员变量的初始化在构造函数里的初始化动作之前。

public class Test {private String s = "1";public Test() {s = "2";}public static void main(String[] args) {Test t = new Test();System.out.println(t.s); // 输出2}}

2、对于有继承的情况,实例化子类时,子类的<init>()方法中第一步是调用父类的<init>()方法,<init>()方法中,成员变量初始化是在构造初始化之前,但是这个例子中由于多态特性,调用到了子类,此时子类的数据还没有初始化,所以输出是null。

public class Base {private String baseName = "base";public Base() {callName();}public void callName() {System.out.println(baseName);}static class Sub extends Base {private String baseName = "sub";public void callName() {System.out.println(baseName);}}public static void main(String[] args) {Base b = new Sub(); // 输出null}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。