20180407 java java面向对象-面向接口编程思想
面向接口编程好处:
充分体现了多态性,把实现类对象赋给接口类型变量,屏蔽了不同实现类之间的实现差异,从而可以做到通用编程。
案例:使用USB设备来工作。
不用接口的情况:
//鼠标
class Mouse
{
public void swapData()
{
System.out.println("鼠标在移动...");
}
}
//打印机
class Print
{
public void swapData()
{
System.out.println("打印中...");
}
}
//主板(又叫母板):鼠标和键盘等都会插入到主板中。
class MotherBoard
{
//把设备插入到主板中
public static void plugIn(Mouse m)//把鼠标对象插入到主板中
{
m.swapData();
}
}
class USBDemo
{
public staic void main(String[] args)
{
//创建鼠标对象
Mouse m= new Mouse();
MotherBoard.plugIn(m);
//安装打印机
MotherBoard.plugIn(new Print());//报错
}
}
用接口的情况:
//指定USB规范
Interface IUSB
{
void swapData();
}
//USB版本的鼠标
class Mouse implements IUSB //让鼠标遵循IUSB规范
{
public void swapData()
{
System.out.println("鼠标在移动...");
}
}
//USB版本的打印机
class Print implements IUSB //让打印机遵循IUSB规范
{
public void swapData()
{
System.out.println("打印中...");
}
}
//主板(又叫母板):鼠标和键盘等都会插入到主板中。
class MotherBoard
{
//把设备插入到主板中
public static void plugIn(IUSB usb)//把鼠标对象插入到主板中,即接受一切IUSB类型的对象
{
usb.swapData();
}
}
class USBDemo
{
public staic void main(String[] args)
{
//创建鼠标对象
Mouse m= new Mouse();
MotherBoard.plugIn(m);
//安装打印机
MotherBoard.plugIn(new Print());//不报错
}
}