前言
在開始分享之前,請(qǐng)大家思考三個(gè)問題 。
1,什么是多態(tài)?
2,多態(tài)有幾種實(shí)現(xiàn)方式(除了接口還有什么可以實(shí)現(xiàn)多態(tài),答案不唯一。)
3,多態(tài)的好處
答案:大家可以把自己的見解分享到下面評(píng)論里
下面以接口的方式,實(shí)現(xiàn)多態(tài)。
目錄
- 案例
- 案例分析
- 功能分析:
- 關(guān)系圖:
- 案例實(shí)現(xiàn)
- 結(jié)果
- 源碼模塊下載
相關(guān)學(xué)習(xí)推薦:java基礎(chǔ)教程
案例
案例分析
功能分析:
關(guān)系圖:
從這個(gè)關(guān)系圖里可以看到,接口和電腦之間的關(guān)系。以及接口和鼠標(biāo),鍵盤之間的關(guān)系。
案例實(shí)現(xiàn)
USB接口:
package cn.itcast.day10.demo07;public interface USB { void open();//打開設(shè)備 void close();//關(guān)閉設(shè)備}
鍵盤類:實(shí)現(xiàn)USB接口
package cn.itcast.day10.demo07;//鍵盤本身就是一個(gè)USB設(shè)備public class keyboard implements USB { @Override public void open() { System.out.println("打開鍵盤"); } @Override public void close() { System.out.println("關(guān)閉鍵盤"); }}
鼠標(biāo)類:實(shí)現(xiàn)USB接口
package cn.itcast.day10.demo07;//鼠標(biāo)本身就是一個(gè)USB設(shè)備public class Mouse implements USB { @Override public void open() { System.out.println("打開鼠標(biāo)"); } @Override public void close() { System.out.println("關(guān)閉鼠標(biāo)"); }}
計(jì)算機(jī)類:使用USB接口
package cn.itcast.day10.demo07;public class Computer { //電腦本身自帶的功能 public void powerOn(){ System.out.println("筆記本電腦開機(jī)"); } public void powerOff(){ System.out.println("筆記本電腦關(guān)機(jī)"); } //使用USB接口方法 public void useDevice(USB usb){ usb.open(); usb.close(); }}
客戶端類:
package cn.itcast.day10.demo07;public class DemoMain { public static void main(String[] args) { Computer computer=new Computer();//實(shí)例化電腦 //省略向上轉(zhuǎn)型 computer.powerOn(); computer.useDevice(new Mouse()); //使用向上轉(zhuǎn)型 USB usb=new keyboard(); computer.useDevice(usb); computer.powerOff(); }}
結(jié)果
相關(guān)學(xué)習(xí)推薦:編程視頻