JAVA中,一個類可以繼承另外一個類,被繼承的類稱為父類,繼承的類稱為子類。當一個子類繼承某個父類后,子類會自動繼承父類的屬性和方法。在某些情況下,父類和子類可能會有相同的屬性,這個時候需要注意。
public class Animal { public String name; public Animal(String name) { this.name = name; } } public class Dog extends Animal { public String name; public Dog(String name) { super(name); this.name = name; } public void printName() { System.out.println("Dog name: " + name); System.out.println("Animal name: " + super.name); } }
在上面的例子中,Dog類繼承了Animal類,同時Dog類中也有一個名為name的屬性。當我們調用Dog的printName()方法時,會輸出兩個不同的name值。其中一個name值來自Dog類自己的屬性,另外一個name值來自Animal類。如果我們想要訪問Dog類的父類的屬性,需要使用super關鍵字。
在實際開發中,如果需要在子類中重寫父類中的屬性或方法,我們需要仔細考慮。重寫父類中的屬性會導致子類和父類中擁有相同的屬性,這可能會導致代碼的混淆和錯誤。因此,在繼承中,我們應該盡量避免在子類中定義和父類同名的屬性。