Java超詳細講解多態的調用
概念:多態是什麼它就相當於區別對待,比如買票這個行為,當普通人買票時,是全價買票;學生買票時,是半價買票;軍人買票時是優 先買票。再者就是再舉個詳細的例子: 最近為瞭爭奪在線支付市場,支付寶年底經常會做誘人的掃紅包-支付-給獎勵金的活動。那麼 大傢想想為什麼有人掃的紅包又大又新鮮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 多態調用內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!