首頁>技術>

多型,就是多種狀態的意思。在面嚮物件語言中,介面的多種不同的實現方式為多型,一個方法(名)多種實現,也是多型。多型可消除型別之間的耦合關係,擁有可替換性、 可擴充性、靈活性和簡化程式碼的優點。

23.1 介面多型

在Java中,介面多型有三個必要條件:繼承、重寫和基類引用指向派生類物件(引用還是指向基類),介面多型的好處:可以使程式有良好的擴充套件,並可以對所有類的物件進行通用處理。實現或改變父類方法的實現,在Java中叫作重寫

一個用於繪製圖形的介面,提供一個繪製的方法,呼叫這個方法調,可以畫圓,可以畫方塊,還可以畫線條等。

public interface Shape {    void draw();}

實現Shape繪製圖形介面,實現畫個圓。

//實現Shape介面,畫個圓public class Circle implements Shape {    public void draw() {        System.out.println("畫個圓.");    }}

實現Shape繪製圖形介面,實現畫個方塊。

//實現Shape介面,畫個方塊public class Square implements Shape {    public void draw() {        System.out.println("畫個方.");    }}

在呼叫的地方,面向的是介面Shape。如果想實現畫圓,就用Circle,想實現畫方塊,就用Square。改變Circle和Square的實現細節,呼叫的地方,不需要改變,這就是松耦合的表現.

/* * Java多型講解 */public class Main {    public static void main(String[] args) {        Shape shape = new Circle();        //畫個圓        shape.draw();        shape = new Square();        //畫個方塊        shape.draw();    }}

輸出結果

畫個圓.畫個方.

23.2 方法多型

方法多型,在一個類裡面,方法名字相同,而引數不同,返回型別可以相同也可以不同。專業名稱叫作過載(overloading)。每個過載的方法(或者建構函式)都必須有一個獨一無二的引數型別列表。

/* * Java多型講解 */public class MathUtil {    public void add(int a, int b) {        System.out.println("兩個整數之和為:" + (a + b));    }    public void add(double a, double b) {        System.out.println("兩個浮點數之和:" + (a + b));    }    public void add(int a, double b) {        System.out.println("一個整數和一個浮點數之和:" + (a + b));    }    public static void main(String[] args) {        MathUtil math = new MathUtil();        math.add(10, 10);        math.add(10.25, 20.51);        math.add(10, 20.51);    }}

輸出結果

兩個整數之和為:20

兩個浮點數之和:30.76

一個整數和一個浮點數之和:30.51

發現沒,一樣是呼叫add方法,結果卻是不一樣的,這就是多型的優點。如果我提供這些教程,你卻還不好好學的話,那不是多型,那叫變態。

#Java##APP##程式設計師##Web##Spring#

10
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Web前端開發工具有哪些?