Java是一種面向對象編程語言,其中繼承是其核心特性之一。當一個子類繼承一個父類時,它會繼承其所有方法和變量。這包括父類的構造函數和其他所有方法。在Java中,子類可以調用其父類的方法,也可以重寫這些方法。
為了調用父類的方法,子類可以使用super關鍵字。例如:
public class Animal { public void eat() { System.out.println("Animal is eating"); } } public class Dog extends Animal { public void eat() { super.eat(); System.out.println("Dog is eating"); } } public class Test { public static void main(String[] args) { Dog d = new Dog(); d.eat(); } }
在上面的例子中,Dog類繼承自Animal類,并重寫了eat()方法。在重寫eat()方法時,Dog類調用了super.eat()方法,這將調用Animal類的eat()方法并打印出“Animal is eating”。然后,它會繼續執行子類的eat()方法并打印“Dog is eating”
除了調用父類的方法,還可以重寫父類的方法。這意味著子類可以提供自己的實現方式,并覆蓋父類的實現方式。例如:
public class Animal { public void makeSound() { System.out.println("Animal is making a sound"); } } public class Dog extends Animal { public void makeSound() { System.out.println("Woof!"); } } public class Cat extends Animal { public void makeSound() { System.out.println("Meow"); } } public class Test { public static void main(String[] args) { Animal a1 = new Animal(); Animal a2 = new Dog(); Animal a3 = new Cat(); a1.makeSound(); // 輸出: "Animal is making a sound" a2.makeSound(); // 輸出: "Woof!" a3.makeSound(); // 輸出: "Meow" } }
在上面的例子中,Animal類有一個名為makeSound()的方法,它打印出“Animal is making a sound”。Dog和Cat類繼承自Animal類并重寫了makeSound()方法。當在Test類中創建不同的Animal對象并調用它們的makeSound()方法時,將輸出不同的結果。