Java中的過(guò)載(overload)和重載(override)是一些初學(xué)者容易混淆的概念。然而,它們是兩個(gè)不同的概念,它們的作用也完全不同。在本篇文章中,我們將通過(guò)簡(jiǎn)單的解析來(lái)說(shuō)明這兩者之間的差異。
首先,我們需要了解什么是過(guò)載和重載。過(guò)載是指在一個(gè)類(lèi)中定義的方法名相同,但方法的參數(shù)列表不同,使得它們有不同的簽名。而重載是指在一個(gè)子類(lèi)中定義了一個(gè)方法,它與父類(lèi)中的方法名相同,但是其參數(shù)列表不同。
// 過(guò)載 public void print(String str) { System.out.println(str); } public void print(int num) { System.out.println(num); } // 重載 class Father { public void print(String str) { System.out.println(str); } } class Son extends Father { public void print(int num) { System.out.println(num); } }
在以上示例中,我們可以看到,過(guò)載的兩個(gè)方法的方法名相同,但是參數(shù)列表不同(一個(gè)是String類(lèi)型,另一個(gè)是int類(lèi)型),它們有不同的簽名。而在重載的情況下,Son類(lèi)中的print方法的方法名與Father類(lèi)中的print方法名相同,但是參數(shù)列表不同(一個(gè)是String類(lèi)型,另一個(gè)是int類(lèi)型)。
需要注意的是,重載通常與繼承有關(guān),而過(guò)載則與方法的參數(shù)有關(guān)。在編寫(xiě)程序時(shí),我們需要小心區(qū)分它們的意義,以確保程序的正確性。