内部类的继承和初始化顺序
2005-12-22 13:22
148 查看
//: BigEgg2.java
// Proper inheritance of an inner class
import java.io.*;
class Egg2 {
protected class Yolk {
public Yolk() {
System.out.println("Egg2.Yolk()");
}
public void f() {
System.out.println("Egg2.Yolk.f()");
}
}
public Yolk y = new Yolk();
public Egg2() {
System.out.println("New egg()2");
}
public void insertYolk(Yolk yy) {
y = yy;
}
public void g() {
y.f();
}
}
public class BigEgg2 extends Egg2 {
public class Yolk extends Egg2.Yolk {
public Yolk() {
System.out.println("BigEgg2.Yolk()");
}
public void f() {
System.out.println("BigEgg2.Yolk.f()");
}
}
public BigEgg2() {
//insertYolk(new Yolk());
new Yolk();
}
public static void main(String[] args) {
Egg2 e2 = new BigEgg2();
//e2.g();
}
}
从输出结果来看:
初始化顺序如下:
先初始化父类成员变量,然后父类构造函数,然后子类成员变量,子类构造函数
// Proper inheritance of an inner class
import java.io.*;
class Egg2 {
protected class Yolk {
public Yolk() {
System.out.println("Egg2.Yolk()");
}
public void f() {
System.out.println("Egg2.Yolk.f()");
}
}
public Yolk y = new Yolk();
public Egg2() {
System.out.println("New egg()2");
}
public void insertYolk(Yolk yy) {
y = yy;
}
public void g() {
y.f();
}
}
public class BigEgg2 extends Egg2 {
public class Yolk extends Egg2.Yolk {
public Yolk() {
System.out.println("BigEgg2.Yolk()");
}
public void f() {
System.out.println("BigEgg2.Yolk.f()");
}
}
public BigEgg2() {
//insertYolk(new Yolk());
new Yolk();
}
public static void main(String[] args) {
Egg2 e2 = new BigEgg2();
//e2.g();
}
}
从输出结果来看:
初始化顺序如下:
先初始化父类成员变量,然后父类构造函数,然后子类成员变量,子类构造函数
相关文章推荐
- Java类继承关系中的初始化顺序
- 【深入理解JVM】:Java类继承关系中的初始化顺序
- 继承中的初始化顺序
- 对象的初始化顺序问题02(继承中)
- java之组合,继承,以及多态初始化的顺序
- java中涉及继承关系的初始化顺序
- java 继承时子类父类的静态非静态成员变量,构造方法,静态代码块的初始化顺序
- 继承与初始化(static对象初始化顺序)
- java的继承关系中对象的加载和初始化顺序
- java中继承的初始化顺序
- 类继承和初始化类的执行顺序
- 继承初始化顺序
- 【转载】java继承 初始化顺序
- C/C++开发语言系列之5---普通继承和虚基类构造函数的初始化顺序2
- Java第11次作业:什么是继承?继承的好处?什么是覆写?super()?构造代码块?子父类初始化顺序? 抽象类能用final声明吗?final关键字声明类 方法 变量以及全局常量?抽象类的构造方法?
- C++——类继承以及类初始化顺序
- java中类与继承类内初始化顺序的测试
- Java类继承关系中的初始化顺序
- 继承中的对象初始化顺序(内存结构)和继承类初始化
- java继承 初始化顺序