2012-10-08 43 views
2

可能重複:
When do you use Java's @Override annotation and why?什麼是@Override註釋的點在Java 1.6的

我一直運行到由於此註釋不兼容的問題。無論如何都有什麼意義?

簡單地重寫一個方法和重寫一個方法+用@override註釋它有什麼區別?

+4

http://stackoverflow.com/questions/94361/when-do-you-use-javas-override-annotation-and-why – Zavior

+0

類似的帖子可能會有所幫助:http://stackoverflow.com/questions/ 8076008 /什麼,是最專門的最超越的註釋 –

回答

4

要從@Override JavaDoc的引用:

如果一個方法被標註與此註釋類型,但不覆蓋一個超類方法,編譯器是必需的,以產生一個錯誤消息。

所以一個很好的答案是「防止潛在的運行時錯誤在編譯時」 :-)

乾杯,

1

它說清楚,一個方法應覆蓋父母的方法。

如果您遇到問題,建議您在父類中進行許多不兼容的更改(無需讓IDE爲您執行此操作),或者您正在使用不支持此註釋的Java 5.0編譯代碼實現一個接口。

2

如果您不是真的重寫某個方法,則會發出錯誤。

例如,你有

public class SuperClass { 
    public void doSomething(int a) { 
    } 
} 

同時延長了它你可作出錯誤

public class SubClass { 
    public void doSomething(String a) { 
    } 
} 

現在你相信你已經重新實現超類方法,但你只是增加了一個新的。

在方法聲明之前加上@Override並且會顯示一個錯誤,所以你知道有什麼問題。