Java中的面向對象編程是非常重要的,而面試中經常涉及到重載和重寫這兩個概念。
重載是指在同一個類中,方法名相同但參數不同的情況下,可以定義多個方法。具體來說,參數不同可以指數量不同或類型不同。Java會根據方法名和參數確定唯一的調用方式。
public class OverloadExample { public void display(int num){ System.out.println("num 屬性值為: "+num); } public void display(String name){ System.out.println("name 屬性值為: "+name); } }
上述示例中,display方法被重載了,因為它們的方法名相同,但是參數不同:int和String。如果在程序中調用這個類中的display方法,則Java會自動識別使用哪個方法。
重寫是指子類的方法覆蓋了父類的同名方法。具體來說,當子類需要修改父類中的某個方法時,可以通過重寫來實現。子類的重寫方法必須和父類的方法的名稱、參數都相同。重寫的意義在于可以在子類中更加靈活地使用父類方法,而且也可以增強和拓展新的功能。
public class OverrideExample { public void display() { System.out.println("父類的display方法被調用了"); } } public class Subclass extends OverrideExample { public void display() { System.out.println("子類的display方法被調用了"); } }
在這個示例中,子類Subclass繼承了父類OverrideExample,但是重寫了display方法。因此,當Subclass的實例調用display方法時,輸出的是子類的信息而不是父類的信息。