1. 程式人生 > >java0010——面向介面的程式設計

java0010——面向介面的程式設計

例題 計算機連線各種外設,每個外設都有各自的讀寫方法 目的實現程式碼依賴介面,而不是依賴具體的類,方便程式的擴充套件

package Computer;
public interface IMobleDevice{
	public void write();
	public void read();
}
=====================================================
package Computer;

public class Computer {
	IMobleDevice device;

	public Computer() {
		super
(); } public Computer(IMobleDevice device) { super(); this.device = device; } public IMobleDevice getDevice() { return device; } public void writeData() { device.write(); } public void readDate() { device.read(); } public void setDevice(IMobleDevice device) { this.device =
device; } } ===================================================== package Computer; public class Phone implements IMobleDevice { public void write() { System.out.println("把筆記本資料寫入手機"); } public void read() { System.out.println("從手機讀取資料到筆記本"); } } ========================================
============= package Computer; public class UDisk implements IMobleDevice { public void write() { System.out.println("寫入U盤"); } public void read() { System.out.println("讀取U盤"); } } ===================================================== package Computer; public class MobileHarddisk implements IMobleDevice { public void write() { System.out.println("把資料寫入行動硬碟"); } public void read() { System.out.println("從行動硬碟讀取資料"); } } ===================================================== package Computer; public class RunningDemo { public static void main(String[] args) { // TODO Auto-generated method stub Computer computer =new Computer(); UDisk disk=new UDisk(); computer.setDevice(disk);//新增一個具體的多型介面 computer.readDate(); computer.writeData(); Phone phone=new Phone(); computer.setDevice(phone);//修改新增的資料 computer.readDate(); computer.writeData(); MobileHarddisk harddisk=new MobileHarddisk(); computer.setDevice(harddisk); computer.readDate(); computer.writeData(); } }