2014-02-24 95 views
-2

你如何將某些東西變爲重寫?我的書提供了一個基本的解釋,但沒有說明如何將它實現到你的代碼中,而互聯網也同樣有用。我的方向說...如何把它變成一個覆蓋?

創建一個名爲Rational的一個Java類: ... 重寫等於這樣,如果該參數的分子和分母正好等於當前對象的分子和分母的方法返回true,否則爲假。

我想我已經想出瞭如何做覆蓋方法,但進一步調查後,它看起來像我搞砸了。

Rational.Equals(Rational x){ 
    if(x.numerator == a && x.denominator == b) 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
    } 

任何提示或良好的閱讀如何使其成爲一種重寫方法?

+1

[傳承](http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html) –

+0

它看起來像你試圖發明你自己的語法。編譯器通常無法搞清楚。按照Sotirios給你的鏈接,然後尋找覆蓋的小節。另外,'a'和'b'是什麼? – ajb

回答

0

簡而言之,覆蓋另外,當一個子類提供了自己的實現具有相同簽名(返回類型,名稱和參數類型)作爲超類中的方法的方法,如:

class SuperClass { 
    void someMethod() { 
     // some impl 
    } 
} 

class SubClass extends SuperClass { 
    @Override // @Override annotation not necessary, but good practice 
    void someMethod() { 
     // some overriding impl 
    } 
} 
0

類有方法,並且當一個類擴展了另一個類(每個類擴展了Object類)時,它可以聲明一個與超類中籤名相同的方法,所以它被稱爲覆蓋。我想你應該寫入類似:

class Rational { 
    int numerator, denominator; 

    @Override 
    public boolean equals(Object o) { 
    if (o instanceof Rational) { 
     Rational rational = (Rational) o; 
     return numerator == rational.numerator && denominator == rational.numerator; 
    } 
    return false; 
    } 
}