/*
结合前面给你讲的大白话再给你举个实例,希望对你有帮助
需求:笔记本电脑与USB设备的运行。
增加笔记本的扩展功能,降低后期设备和笔记本的耦合性。
这时我们会想到什么?接口。
需要先定义好一个规则。
笔记本可以使用这个规则。其他设备可以实现这个规则。
这样笔记本就可以使用符合规则的设备啦!
*/
//定义规则
interface USB
{
public void open(); //打开方法
public void close();//关闭方法
}
//笔记本使用符合规则的设备
class NoteBook
{
public void run() //笔记本电脑运行方法
{
System.out.println("notbook run");
}
public void useUSB(USB u)//USB u = new USBMouse();//接口类型的引用指向了自己的子类对象。
{
if(u!=null){
u.open();
u.close();
}
}
}
//USB鼠标设备,实现接口中的方法
class USBMouse implements USB
{
public void open()
{
System.out.println("usemouse open");
}
public void close()
{
System.out.println("usemose close");
}
}
//USB键盘设备,实现接口中的方法
class USBKey implements USB
{
public void open()
{
System.out.println("usbkey open");
}
public void close()
{
System.out.println("usbkey close");
}
}
//电脑运行
class NoteBookDemo
{
public static void main(String[] arg)
{
NoteBook book = new NoteBook();
book.run();
book.useUSB(new USBMouse());//只需要将USB鼠标插入电脑运行即可
book.useUSB(new USBKey());////只需要将USB键盘插入电脑运行即可
}
}
/*
这样只需要定义好接口,所有USB设备只需要实现接口中的方法,无需知道笔记本电脑内具体是怎样实现的,
比较本定义好以后也不需要去修改,只要将USB设备传入笔记本的USB方法即可。
这样就增加了笔记本的扩展功能,降低设备和笔记本之间的耦合性。
*/ |