一、需求:
  1.在电脑上设置一个USB接口。
  2.电脑运行时,将鼠标连接到接口上,鼠标可以使用自己的功能。
  3.电脑运行时,将键盘连接到接口上,键盘可以使用自己的功能。
(使用接口的作用:减低鼠标、键盘等外围设备和笔记本电脑的耦合性。还可以增加电脑的扩展性。)

二、实例代码:

 //进行设计,定义USB接口规则
interface USB
{
/**
运行设备
*/
public void open();
} //描述电脑
class computer
{
/**
电脑运行
*/
public void run()
{
System.out.println("computer ......");
} /**
使用符合规则的外围设备
*/
public void useUSB(USB usb) //定义一个接口类型的引用。
{
if(usb != null);
{
usb.open();
}
}
} class Mouse
{
public void run()
{
System.out.println("Mouse ......");
}
} class Keyboard
{
public void run()
{
System.out.println("Keyboard ......");
}
} /**
连接了符合USB接口的鼠标。
*/
class MouseUSB extends Mouse implements USB
{
public void open()
{
System.out.println("Mouse USB open ......");
}
} /**
连接了符合USB接口的键盘。
*/
class KeyboardUSB extends Keyboard implements USB
{
public void open()
{
System.out.println("Keyboard USB open ......");
}
} /**
连接了符合USB接口的东西。
*/
class ThingUSB implements USB
{
public void open()
{
System.out.println("open ......");
}
} class USBTest
{
public static void main(String[] arge)
{
/**
电脑c开始运行
*/
computer c = new computer();
c.run(); /**
将鼠标m连接到接口useUSB上,鼠标可以使用自己的功能
*/
MouseUSB m = new MouseUSB();
c.useUSB(m);
m.run(); /**
将键盘k连接到接口useUSB上,键盘可以使用自己的功能
*/
KeyboardUSB k = new KeyboardUSB();
c.useUSB(k);
k.run(); /**
连接接口useUSB的东西t,可以使用
*/
USB t = new ThingUSB();//多态性。能连接接口就可以使用。
c.useUSB(t);
}
}

三、代码运行:

  

最新文章

  1. C语言中的static 详细分析
  2. 【转】Linux下怎样检查、如何查看某软件包是否已经安装?
  3. python3抓取到的拉勾数据统计
  4. HDU 1394Minimum Inversion Number 数状数组 逆序对数量和
  5. pch和info.plist初探
  6. HTTP协议——学习资料小结
  7. Android之记账本
  8. 自己利用jQuery实现的win8图标浮动更新
  9. 关于jQuery获取checkbox状态的问题
  10. C#入门经典中的SelectionFont属性为null
  11. JavaScript获取html元素的实际宽度和高度
  12. Microsoft Visual C++ Compiler for Python 2.7真正下载地址
  13. MySQL权限授权认证详解
  14. Keepalived详解(二):Keepalived安装与配置【转】
  15. libssl.so.10: cannot open shared object file: No such file or directory
  16. 编译openwrt时报错:fstools-2018-01-02-11efbf3b/libfstools/overlay.c: At top level: cc1: error: unrecognized command line option '-Wno-format-truncation' [-Werror]
  17. Spring Boot Actuator RCE
  18. python函数嵌套的实用技术
  19. Linux内核程序的编译:模块化编译
  20. 转:win32下的堆管理系统

热门文章

  1. 解决webpack环境变量NODE_ENV跨平台兼容性问题
  2. 摄影之HDR
  3. hadoop 小知识点
  4. iOS坑爹的could not find any information for class named xxx
  5. 辽宁工程技术大学校园网(深澜) 叠加小水管提速,多wan叠加负载均衡
  6. eclipse egit(分支管理 上)
  7. mongo 修改器 $inc/$set/$unset/$pop/$push/$pull/$addToSet
  8. springboot @Value 类中读取配置文件 .properties null 原因和解决方案
  9. SqlServer——神奇代码1之Update
  10. Mr_matcher的细节2