首頁 > Java > java教程 > Java如何透過靜態和動態機制實現多型?

Java如何透過靜態和動態機制實現多型?

Mary-Kate Olsen
發布: 2024-10-30 01:12:28
原創
635 人瀏覽過

How Does Java Achieve Polymorphism with Both Static and Dynamic Mechanisms?

Java 中的多態性:綜合指南

在物件導向程式設計中,多態性允許將不同類別的物件視為同一類別的物件共同的超類別。 Java 透過兩種主要機制來支援多態:靜態多型態和動態多型態。

靜態多態

靜態多態性,也稱為方法重載,當兩個或多個方法在同一類別具有相同的名稱但不同的參數列表。在編譯過程中,編譯器會根據傳遞的參數的數量和類型來決定要呼叫哪個方法。

範例:

<code class="java">class Calculation {
  void sum(int a, int b) {}
  void sum(int a, int b, int c) {}
}

// Main method
Calculation obj = new Calculation();
obj.sum(10, 10, 10); // 30
obj.sum(20, 20); // 40</code>
登入後複製

在此範例中,此方法sum 重載了兩個不同的參數清單。當使用三個參數呼叫方法時,編譯器會選擇具有三個參數的 sum 方法。相反,當使用兩個參數呼叫方法時,編譯器會選擇使用兩個參數的 sum 方法。

動態多態

動態多態性,也稱為方法重寫,當不同類別中的兩個或多個方法具有相同的名稱和簽名時,就會發生這種情況。在運行時,虛擬機器根據物件的運行時類型決定呼叫哪個方法。

範例:

<code class="java">class Animal {
  public void move() {}
}

class Dog extends Animal {
  public void move() {}
}

// Main method
Animal a = new Animal(); // Animal reference and object
Animal b = new Dog(); // Animal reference but Dog object

a.move(); // "Animals can move"
b.move(); // "Dogs can walk and run"</code>
登入後複製

在此範例中,方法 move在 Dog 類別中被重寫。當對 Animal 引用 a 呼叫 move 方法時,將呼叫 move 的 Animal 實作。然而,當在 Dog 引用 b 上呼叫 move 方法時,會呼叫 move 的 Dog 實現,這展示了動態多態性。

以上是Java如何透過靜態和動態機制實現多型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板