我不知道這種傳遞對象作爲參數的方式被調用。所以我不知道該在網站上搜索什麼。我很抱歉,如果之前已經問過這個問題,我確信它已經有了。這段Java代表什麼意思?
有人可以告訴我這兩種傳遞對象作爲參數的方式有什麼區別嗎?爲什麼我不能以第一種方式重寫屬性和方法?
myObject.doSomethingWithOtherObject((new OtherObject() {
// why can't I override properties here?
public String toString() {
return "I am the other object.";
}
...
}));
myOtherObject = new OtherObject();
myObject.doSomethingWithOtherObject(myOtherObject);
然後我有第二個問題,但也許回答第一個問題也將回答這個問題。 爲什麼這個不行:
public class OtherObject {
public OtherObject (String str) {
super();
}
}
myObject.doSomethingWithOtherObject((new OtherObject("string arg") {
public void overrideSomething() {
}
}));
字符串「字符串Arg」不是傳遞給構造函數,因爲我本來期望。而是抱怨沒有找到構造函數OtherObject()。 爲什麼Java不能識別我試圖發送一個參數給構造函數?
感謝您的閱讀!
*「然後,我有第二個問題」 * ** **的一個問題每個問題,請。詳細地說,請參閱[遊覽]和[幫助],特別是[*我如何提出一個好問題?](/ help/how-to-ask) –
閱讀什麼是匿名課程...... – Garry
這是最好的如果你將兩個問題分解爲單獨的問題。這樣的答案將永遠是關於當前的問題:)像其他人所說的,在另一個類中創建一個類(就像你在這裏所做的那樣)被稱爲匿名內部類。如果你仍然在學習基礎知識,我會盡量保持這一點,直到你對基本要素感到滿意爲止。 – miva2