J2SE5中的預定義註釋Override、Deprecated和SuppressWarnings

、什麼是註釋

    說起註釋,得先提一提什麼是元數據(metadata)。所謂元數據就是數據的數據。也就是說,元數據是描述數據的。就象數據表中的字段一樣,每個字段描述了這個字段下的數據的含義。而J2SE5.0中提供的註釋就是java源代碼的元數據,也就是說註釋是描述java源代碼的。在J2SE5.0中可以自定義註釋。使用時在@後面跟註釋的名字。
                                                                                    
二、J2SE5.0中預定義的註釋


    在J2SE5.0的java.lang包中預定義了三個註釋。它們是Override、Deprecated和SuppressWarnings。下面分別解釋它們的含義。

Override

    這個註釋的作用是標識某一個方法是否覆蓋了它的父類的方法。那麼爲什麼要標識呢?讓我們來看看如果不用Override標識會發生什麼事情。

 

假設有兩個類Class1和ParentClass1,用Class1中的myMethod1方法覆蓋ParentClass1中的myMethod1方法。

class ParentClass1

...{ public void myMethod1() ...{...} }

class Class1 extends ParentClass1 ...

{ public void myMethod2() ...{...} }
建立Class1的實例,並且調用myMethod1方法
ParentClass1 c1 = new Class1(); c1.myMethod1();
以上的代碼可以正常編譯通過和運行。但是在寫Class1的代碼時,誤將myMethod1寫成了myMethod2,然而在調用時,myMethod1並未被覆蓋。因此,c1.myMethod1()調用的還是ParentClass1的myMethod1方法。更不幸的是,程序員並未意識到這一點。因此,這可能會產生bug。

如果我們使用Override來修飾Class1中的myMethod1方法,當myMethod1被誤寫成別的方法時,編譯器就會報錯。因此,就可以避免這類錯誤。

class Class1 extends ParentClass1 ...{ @Override // 編譯器產生一個錯誤 public void myMethod2() ...{...} }
以上代碼編譯不能通過,被Override註釋的方法必須在父類中存在同樣的方法程序才能編譯通過。也就是說只有下面的代碼才能正確編譯。

class Class1 extends ParentClass1 ...{ @Override public void myMethod1() ...{...} }

 

來自:http://www.cnblogs.com/programwjy/archive/2010/08/24/1807136.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章