构造函数是否可以覆盖其实例

时间:2016-06-16 13:53:20

标签: java

我正在开发游戏,这个问题出现了:如果变量设置为类的实例,并且类构造函数设置变量,那么变量最终会是什么?例如:

public class MainClass {
    public static MainInterface mainInterface;
    public static void main(String[] args) {
        mainInterface = new SubClass1();
    }
}

public interface MainInterface {
    public void method();
}

public class SubClass1 implements MainInterface {
    public SubClass1() {
        MainClass.mainInterface = new SubClass2();
    }
    public void method() { }
}

public class SubClass2 implements MainInterface {
    public void method() { }
}

那么,在这个例子中,mainInterface是SubClass1还是SubClass2的实例?

1 个答案:

答案 0 :(得分:3)

测试并找出答案! :)一个简单的System.out.println(mainInterface.getClass())将打印出类值。

我相当肯定这个过程是这样的:

  • 调用SubClass1'的构造函数,将mainInterface设置为new SubClass2对象。
  • SubClass1' s构造函数完成并分配给mainInterface,导致mainInterface成为新创建的SubClass1对象。