更新時間:2025-05-10 16:14:08作者:佚名
許多人總是很容易混淆這三個詞,有些人甚至認為這三個詞沒有太大的區別。實際上,仍然存在很大的差異overwrite是什么意思overwrite是什么意思,并且徹底了解這三個之間的關系仍然非常重要。這對于理解類,類和界面之間的關系,類中的方法與方法之間的關系以及理解Java的多態性和繼承尤為重要。此外,在采訪中貝語網校,有時您會被問到這三個單詞中的兩個。
讓我們首先看一下這三個詞的含義:
覆蓋:覆蓋
過載:超載
覆蓋:重寫
接下來,讓我們看一下這三個區別:
public class WarppedSessionListener implements HttpSessionListener {
public static void test(String name){
System.out.println("方法name:"+name);
}
/**
* @param args
*/
public static void main(String[] args) {
test("main");
}
@Override
public void sessionCreated(HttpSessionEvent sessionEvent) {
test("sessionCreated");
}
@Override
public void sessionDestroyed(HttpSessionEvent sessionEvent) {
test("sessionDestroyed");
}
}
上面的@Override是什么意思?結合班級,肯定很明顯,該類的方法實現了接口方法。因此可以說:實現實現接口方法。
接下來,查看過載:過載覆蓋之間的差異:覆蓋
//父類
public class FatherClass {
public void test(){
System.out.println("father test method");
}
}
//子類
public class ChildClass extends FatherClass {
@Overwrite //重寫父類方法
public void test(){
System.out.println("Child test method");
}
@Overload //類內部方法-重載
public void test(String name){
System.out.println("This is a Overload method!");
}
/*
//以下編譯不通過
@Overload
public String test(String name){
System.out.println("This is a Overload method!");
return "";
}
*/
}
上面的代碼直接理解重寫意味著重寫父類方法的結論。過載是實現具有相同方法名稱但類別中不同參數名稱的多種方法。
解決最終結論之后:
覆蓋:覆蓋是實現接口方法名稱
超載:同一類中的超載相同的方法名稱,帶有不同的參數
覆蓋:重寫父類所屬的方法