首頁  >  文章  >  Java  >  Java 中介面和抽象類別的多態性應用

Java 中介面和抽象類別的多態性應用

PHPz
PHPz原創
2024-05-02 10:33:011135瀏覽

在Java中,透過介面和抽象類別來實現多態性。介面定義了必須由實作它的類別實作的方法;抽象類別包含抽象方法,必須由其子類別實作。透過建立物件數組並呼叫相同方法,可以根據元素的實際類型呼叫不同的實現,從而實現多態性。例如,可以定義一個 Shape 介面來定義 Shape 類別的繪製方法,然後建立具有不同實現的多個形狀類別(如 Circle、Square、Triangle),並透過一個畫布類別使用多態性來繪製所有形狀。

Java 中接口和抽象类的多态性应用

Java 中介面和抽象類別的多態性應用

多態性是物件導向程式設計(OOP) 中的關鍵概念,它允許物件以不同的方式回應相同的方法呼叫。在 Java 中,可以透過介面和抽象類別來實現多態性。

介面

介面定義了必須由實作它的類別實作的一組方法。介面本身不包含任何實現,只是指定了合約。

public interface Shape {
    double getArea();
}

抽象類別

抽象類別是具有至少一個抽象方法的類別。抽象方法沒有實現,必須由其子類別實現。抽象類別可以包含具體方法和欄位。

public abstract class Animal {
    protected String name;
    
    public abstract void makeSound();
}

多態性

使用介面和抽象類,可以建立物件數組,其中每個元素都有不同的類型。當呼叫這些元素上的相同方法時,會根據實際元素的類型呼叫不同的實作。

Shape[] shapes = { new Circle(), new Square(), new Triangle() };
for (Shape shape : shapes) {
    System.out.println("Area: " + shape.getArea());
}

實戰案例

考慮一個可以繪製不同形狀的畫布類別。可以使用以下介面定義形狀:

public interface Shape {
    void draw();
}

然後,可以建立具有不同繪製實作的多個形狀類別:

public class Circle implements Shape {
    @Override
    public void draw() { System.out.println("Drawing a circle"); }
}

public class Square implements Shape {
    @Override
    public void draw() { System.out.println("Drawing a square"); }
}

public class Triangle implements Shape {
    @Override
    public void draw() { System.out.println("Drawing a triangle"); }
}

畫布類別可以接受Shape 物件數組,使用多態性來繪製所有形狀:

public class Canvas {
    public void drawAll(Shape[] shapes) {
        for (Shape shape : shapes) {
            shape.draw();
        }
    }
}

透過介面和抽象類,Java 中的多態性允許根據物件的實際類型動態呼叫方法,從而實現了可擴展和可重複使用的程式碼。

以上是Java 中介面和抽象類別的多態性應用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn