0
用於Java編程。我已閱讀了我的課本,但找不到它。當在一個子類中使用「超級」這個詞時,單詞超級強迫代碼做什麼?
用於Java編程。我已閱讀了我的課本,但找不到它。當在一個子類中使用「超級」這個詞時,單詞超級強迫代碼做什麼?
這取決於上下文。如果你這樣做:
public SubclassConstructor() {
super("foo");
}
這是將這些參數傳遞給父類的構造函數。如果你不喜歡這樣寫道:
public void subclassMethod() {
super.methodInBoth("foo");
}
@Overrides
public void methodInBoth(String var) {
}
這是調用父類的方法孩子的方法,而不是。而且,爲了鞏固教訓,如果你這樣做是這樣的:
public void subclassMethod() {
this.methodInBoth("foo");
}
@Overrides
public void methodInBoth(String var) {
}
它會叫孩子的方法父的方法,而不是。如果你只是打電話methodInBoth("foo");
,那也會叫小孩的。
超級意味着你正在訪問無論是你從超,而不是你是從調用它的子類訪問。
class GetANumber {
public int getNumber() {
return 1;
}
}
class MultiplyANumber extends GetANumber {
@Override public int getNumber() {
return super.getNumber() * 2;
}
}
System.out.println(new GetANumber().getNumber());
System.out.println(new MultiplyANumber().getNumber());
輸出
1
2
要調用超類當前類的。 –
這裏你去:http://docs.oracle.com/javase/tutorial/java/IandI/super.html –