class Super {
protected int a;
protected Super(int a) { this.a = a; }
}
class Sub extends Super {
public Sub(int a) { super(a); }
public Sub() { this.a = 5; }
}
public Sub() { this.a = 5; }
this.a = 5不起作用。這是爲什麼?受保護的和公共的成員應該被繼承。在Java中,不能從子類訪問受保護的超類的成員
看來你'Super'類只有與參數的構造函數。所以你可以在Super類中創建沒有參數的構造函數,或者用super(0)調用Super的構造函數,然後執行你的賦值。 – uthark 2012-01-11 11:44:34
我明白了。但是,這種行爲的原因是什麼? – sbose 2012-01-11 11:54:16
現在,如果只有編譯器會給你一些描述它所發現的錯誤的消息,這將使你不必猜測發生了什麼...... OH WAIT。它可以。請在將來閱讀錯誤消息。 – Bombe 2012-01-11 11:54:45