Java是一種面向對象的編程語言,其核心特性之一就是重寫和多態。下面我們分別介紹這兩個概念。
重寫(Override)指在子類中重新定義繼承自父類的方法。子類中定義的方法和父類中的方法有相同的名字、參數列表和返回類型。重寫方法的實現與父類中不同,從而覆蓋了父類的實現。
public class Animal { public void move() { System.out.println("Animal can move"); } } public class Dog extends Animal { @Override public void move() { System.out.println("Dog can run and walk"); } }
上面的例子中,Dog類繼承自Animal類并重寫了它的move()方法。當我們創建一個Dog對象并調用它的move()方法時,"Dog can run and walk"會被輸出。
多態(Polymorphism)是指同一個方法被不同類型的對象調用時產生不同的行為效果。Java中的多態性包括編譯時多態性(重載)和運行時多態性(重寫)。
public class Main { public static void main(String[] args) { Animal animal1 = new Animal(); Animal animal2 = new Dog(); animal1.move(); animal2.move(); } }
上面的例子中,我們創建了一個Animal對象和一個Dog對象,并將它們賦值給同一個父類類型的引用。當我們分別調用它們的move()方法時,輸出結果如下:
Animal can move Dog can run and walk
可以看到,animal1和animal2都是Animal類型的引用,但是它們實際上分別指向了Animal和Dog兩種不同的對象,因此在實際調用它們的move()方法時表現出了不同的行為,這就是多態的體現。