我們先來看一下,下面這段代碼:
public class B extends A {
@Override
public void test1() {
// TODO Auto-generated method stub
super.test1();
}
}
上面這段代碼很簡單,創建一個類,類的名字為B 同時讓這個B類繼承與A類,在A類中 有一個方法叫 test1 ,現在我們想在B類中覆蓋A類的test1方法,我們會看到代碼中會出 現 @Override 一句注釋,它是用來干什麼的呢?有很多學習Java的朋友,都會將他刪除 掉,那麼我們就一起來看看它的作用吧。
首先我們來創建一個類,類的名字叫做 A 具體源代碼如下:
package com.zsw.test;
public class A {
public void test1() {
System.out.println("This is test1 moeth in A");
}
}
我們再來創建一個類,類的名字叫做 B 並且讓B類繼承於 A 類,我們想在B類中重寫A 類中的test1方法,但是這時我們不小心將方法名寫成 testl(這裡不是test1 而是字母中 的 L ),源代碼如下:
package com.zsw.test;
public class B extends A {
public void testl() {
System.out.println("This is test1 method in B");
}
}
我們發現我們的方法名稱寫錯了程序並沒有報錯,但是我們想要覆蓋的 test1 方法功 能並沒有實現而是為B類中有添加一個新的方法 testl(這裡是L)
最後我們在寫測試類 Test的時候執行結果怎麼都不對。
package com.zsw.test;
public class Test {
public static void main(String[] args) {
A a = new B();
a.test1();
}
}
總是打印的是 A類中的 test1 方法。這種情況在初學這種經常出現,那麼怎麼能夠避 免這種問題呢,這就要用到我們上面的那句注釋了。現在我們在B類的方法前加上注釋 我們再來看看,發現B類的代碼報錯了
因為這句注釋的意思是說這裡覆蓋的是A 類中的test1方法而現在所寫的方法沒有進行 覆蓋。這樣我們就很容易避免上面所出現的錯誤了。
當然在JDK5.0中還有很多其他的一些注釋比如:
@Deprecated 方法已過期,不再推薦使用。在一個方法上面寫類這句注釋就會出現 下面的情況:
關於更多的一些注釋,可以參考一下JDK5.0幫助。