java polymorphism

polymorphism 多形

定義

多態性是物件導向程式設計的核心概念之一,它指的是一個對象(尤其是方法或對象)可以有多種形式(多個類型)。在 Java 中,多態性主要分為兩種:

編譯時多態性 (Compile-time Polymorphism):

這主要是通過方法重載(Method Overloading)實現的。

方法重載 (Method Overloading)

  • 概念:在同一個類中定義多個方法名相同但參數列表不同的方法。
  • 目的:增加程式的可讀性和可重用性。
  • 範例
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class DemoClass {
    public int add(int a, int b) {
    return a + b;
    }

    public double add(double a, double b) {
    return a + b;
    }
    }

運行時多態性 (Runtime Polymorphism)

這主要是通過方法重寫(Method Overriding)和向上轉型(Upcasting)實現的。

方法重寫 (Method Overriding)

  • 概念:子類提供與父類中某個方法相同的方法名、參數列表和返回類型的方法。
  • 目的:實現運行時多態性,允許子類定義特定的行為。
  • 範例
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class Animal {
    public void sound() {
    System.out.println("動物發出聲音");
    }
    }

    class Dog extends Animal {
    @Override
    public void sound() {
    System.out.println("狗吠");
    }
    }

向上轉型 (Upcasting)

  • 概念:將子類型的引用賦值給父類型的引用。

  • 目的:實現接口的一致性,能夠使用通用的接口來引用不同的子類實例。

  • 範例

    1
    2
    Animal myDog = new Dog();
    myDog.sound(); // 輸出:狗吠

java polymorphism
https://shengshengyang.github.io/2024/01/31/java-polymorphism/
作者
Dean Yang
發布於
2024年1月31日
許可協議