欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

子类的实例化(静态代码块,静态成员变量,构造方法)

程序员文章站 2022-05-23 18:15:01
...

子类实例化顺序

-父类

public class test {
public static String testStatic = “testStaticString”;
//public static Integer i=0;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String name;
public test(){
System.out.println(“test”);
System.out.println(i);
}
static {
i=10;
System.out.println(“testStatic”);
System.out.println(test.testStatic);

}

- 子类

public class test123 extends test {
public static String test123Static = “test123StaticString”;
public test123(){
System.out.println(“test123”);
}
static {
System.out.println(“test123Static”);
}
public static void main(String[] args) {
// System.out.println(test123.test123Static);
// System.out.println(test123.testStatic);
test123 te = new test123();
结果:testStatic
testStaticString
test123Static
test
10
test123

  • 结果分析:1先加载父类的静态代码块(或静态成员变量,和代码顺序有关),2加载子类的静态代码块(或成员变量,和代码顺序有关),3加载父类构造函数给父类属性符初值(不会实例化父类对象),4加载子类构造子类构造函数生成子类实例,5,父类和子类同名属性时,子类覆盖父类的,改变子类的属性值父类的不会改变(存在两个内存值)
相关标签: 子类实例化