2012-11-19 90 views
-3

我有這樣的方法,方法1,在類的xxx它是一個覆蓋或子類

同樣的方法在這個類YYY,它擴展的xxx 但唯一不同的是,在方法內部會發生什麼存在是不同樣的,除此之外,一切都很完美。

那麼這就是所謂的覆蓋?或一個子類?

tks。 p.s如果需要代碼我有,但不想讓事情變得複雜。

+6

你的名字是非常合宜...... – mre

+1

[方法覆蓋(http://docs.oracle.com/javase/tutorial/java/IandI/override.html )vs [subclasses](http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html)。這兩者不是相互排斥的;事實上,如果沒有某種形式的子類化,你不能重寫一個方法。 –

+2

我建議通過[Java「OO」Trails](http://docs.oracle.com/javase/tutorial/java/index.html)或其他合適的資源。這是有據可查的。 – 2012-11-19 01:38:12

回答

1

YyyXxx的子類。 「子類」基本上與「擴展」意思相同。通過在Yyy上定義method1,您將覆蓋由Xxx提供的定義。

1

這就是所謂的覆蓋方法。 Yyy類是繼承Xxx的子類,並且在子類中重新定義的方法覆蓋了超類中的方法。要驗證這是否爲真,請使用@Override對子類中的方法進行註釋。

1

你正在重寫你的子類中的一個方法。子類是使用擴展關鍵字從超級類擴展的類。只有當你有一個繼承關係時纔會出現重寫,即一個類擴展了另一個類。

然而,覆蓋的方法必須滿足下面的規則:

  1. 方法名應該是相同的
  2. 返回類型應該是相同的/子類型(在共變體返回的情況下)
  3. 方法簽名應可以是相同的(即,參數的類型&必須匹配)
  4. 不得具有最嚴格的訪問修飾符
  5. 可能具有最小限制性的訪問修飾符
  6. 必須不拋出新的或更廣泛的例外
+0

根據你的標準來判斷是否覆蓋,那麼我的定義就不是壓倒性的! – noobprogrammer

+0

除非我看到你的方法,否則我不能說 – PermGenError