首頁 > 軟體

Java超詳細講解多型的呼叫

2022-05-13 21:50:12

概念:多型是什麼它就相當於區別對待,比如買票這個行為,當普通人買票時,是全價買票;學生買票時,是半價買票;軍人買票時是優 先買票。再者就是再舉個詳細的例子: 最近為了爭奪線上支付市場,支付寶年底經常會做誘人的掃紅包-支付-給獎勵金的活動。那麼 大家想想為什麼有人掃的紅包又大又新鮮8塊、10塊…,而有人掃的紅包都是1毛,5毛…。其實這背後也是 一個多型行為。支付寶首先會分析你的賬戶資料,比如你是新使用者、比如你沒有經常支付寶支付等等,那麼 你需要被鼓勵使用支付寶,那麼就你掃碼金額 = random()%99;比如你經常使用支付寶支付或者支付寶賬戶 中常年沒錢,那麼就不需要太鼓勵你去使用支付寶,那麼就你掃碼金額 = random()%1;總結一下:同樣是 掃碼動作,不同的使用者掃得到的不一樣的紅包,這也是一種多型行為。ps:支付寶紅包問題純屬瞎編,大家 僅供娛樂。

多型的必要條件:繼承,重寫,杜磊參照指向子類物件

當使用多型方式呼叫方法時,首先檢查父類別中是否有該方法,如果沒有,則編譯錯誤;如果有,再去呼叫子類的同名方法

多型的特點:

1:應用程式不必為每一個派生類編寫功能呼叫,只需要對抽象基礎類別進行處理即可。大大提高程式的可複用性。

2:派生類的功能可以被基礎類別的方法或參照變數所呼叫,這叫向後相容,可以提高可擴充性和可維護性。

程式碼如下:

測試類:

package com.ytzl.total;
/*多型*/
public class polymorphic {
    public static void main(String[] args) {
        //使用純純的呼叫來測試
        fathers fathers = new fathers();//呼叫父類別
        Eldestson eldestson = new Eldestson();//呼叫大兒子類
        youngestson youngestson = new youngestson();//呼叫小兒子類
        fathers.eat();//正常呼叫
        eldestson.eat();//正常待用
        youngestson.eat();//正常呼叫
        System.out.println("n");
        //使用多型來測試
        fathers eldestson1 = new Eldestson();///子類物件的地址值交給父類別的eldestson1來儲存
        fathers youngestson1 = new youngestson();//子類物件的地址值交給父類別的youngestson1來儲存
        eldestson1.eat();//多型呼叫
        youngestson1.eat();//多型呼叫
        eldestson1.setMoney(100);//通過多型去賦值
        eldestson1.setName("小明");//通過多型去賦值
        youngestson1.setMoney(50);//通過多型去賦值
        youngestson1.setName("小張");//通過多型去賦值
        eldestson1.money();//通過多型以子類去獲取父類別方法
        youngestson1.money();//通過多型以子類去獲取父類別方法
    }
}

父類別:

package com.ytzl.total;
/*父類別*/
public class fathers {
    private int money;
    private String name;
    public fathers() {
    }
    public fathers(int money, String name) {
        this.money = money;
        this.name = name;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getMoney() {
        return money;
    }
    public void setMoney(int money) {
        this.money = money;
    }
    public void eat(){
        System.out.println("我是父類別,我老了牙壞了不能吃硬的。");
    }
    public void money(){
        System.out.println("父類別給了"+name+money+"元");
    }
}

子類一:

package com.ytzl.total;
/*大兒類*/
public class Eldestson extends fathers{
    public void eat(){
        System.out.println("我是大兒子類,我還年輕我胃口好牙好什麼都能吃。");
    }
}

子類二:

package com.ytzl.total;
/*小兒子類*/
public class youngestson extends fathers{
    public void eat(){
        System.out.println("我是小兒子類,我還小我牙都沒長齊不能吃太硬的。");
    }
}

執行結果如下:

到此這篇關於Java超詳細講解多型的呼叫的文章就介紹到這了,更多相關Java 多型呼叫內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com