Java是一種面向對象的編程語言,它引入了繼承和接口這兩個重要概念來實現類的擴展和多態性。其中,extends與im是Java中用來實現繼承和接口的關鍵字。
extends(擴展)是Java中實現繼承的關鍵字,它可以讓一個類繼承另一個類的特性和方法。繼承可以讓代碼的復用性大大提高,因為子類可以重用父類的代碼。同時,通過重寫(override)父類的方法,子類可以對父類的行為進行修改或擴展,實現多態性。以下是一個簡單的代碼示例:
public class Animal { public void eat() { System.out.println("Animal is eating."); } } public class Cat extends Animal { public void meow() { System.out.println("Cat is meowing."); } public void eat() { System.out.println("Cat is eating."); } } public static void main(String[] args) { Cat cat = new Cat(); cat.eat(); // Cat is eating. cat.meow(); // Cat is meowing. }
在這個例子中,Cat類繼承了Animal類的eat方法,并重寫了它。當我們調用cat.eat()時,會輸出“Cat is eating.”,而不是Animal類的“Animal is eating.”。這就實現了多態性。
與extends不同,im(實現)是Java中實現接口的關鍵字。接口是一種抽象的數據類型,它定義了一組方法的簽名,但沒有具體的實現。任何一個類只要實現了接口中定義的方法,就可以被稱為接口的實現類。接口可以讓代碼的擴展性大大提高,因為它允許在不改變原有代碼的情況下,增加新的功能。以下是一個簡單的代碼示例:
public interface Animal { void eat(); } public class Cat implements Animal { public void meow() { System.out.println("Cat is meowing."); } public void eat() { System.out.println("Cat is eating."); } } public static void main(String[] args) { Cat cat = new Cat(); cat.eat(); // Cat is eating. cat.meow(); // Cat is meowing. }
在這個例子中,Animal是一個接口,定義了一個eat方法。Cat類實現了這個接口,并實現了eat方法。這樣,當我們調用cat.eat()時,會輸出“Cat is eating.”。這就意味著,實現Animal接口的任何類都必須要實現eat方法,從而保證了代碼的一致性。