public abstract class Demo { public Demo() { this.print(); } public abstract void print();}public class DemoImple extends Demo{ private int x = 10; public DemoImple(int x) { this.x = x; } public void print() { System.out.println("x=" + this.x); }}這個case里面,最后的結果是:x=0給出的解釋是:通過子類對象來進行實例化。不清楚的地方:1、 new DemoImple(100); //這里不是傳遞了數值100嗎?為什么會是0呢 ?2、之所以有輸出,是不是調用了父類,即抽象類Demo的構造方法?實際調用的子類的print() 方法?中間調用機制或是過程是怎樣的?public class CaseDemo09 { public static void main(String[] args) { new DemoImple(100); }}
關于abstract class,子類對象實例化的問題,請教大家!
素胚勾勒不出你
2018-07-22 09:08:49