案例:
//无实际意义
设计一个电脑对象,可以安装两个USB设备;
鼠标:被安装时可以完成接入、调用点击、拨出功能;
键盘:被安装时可以完成接入、调用打字、拔出功能。
分析实现:
1.定义一个USB的接口:(申明USB设备的规范必须是:可以接入、拔出);
2.定义2个USB实现类代表鼠标,键盘,让其实现USB接口,并分别定义它们自己独有的功能;
3.创建电脑对象,创建2个USB实现类对象,分别安装到电脑中并触发功能的执行。
public interface USB {
void access(); //接入
void pullOut(); //拔出
}
//定义usb实现类键盘,让其实现usb接口
public class KeyBoard implements USB{
//定义键盘名字
private String KeyBoardName;
//提供有参无参构造器,提供变量getter,setter方法暴露取值和赋值
public KeyBoard() {
}
public KeyBoard(String keyBoardName) {
KeyBoardName = keyBoardName;
}
public String getKeyBoardName() {
return KeyBoardName;
}
public void setKeyBoardName(String keyBoardName) {
KeyBoardName = keyBoardName;
}
@Override
public void access() {
System.out.println(KeyBoardName+"已经成功连接上电脑");
}
@Override
public void pullOut() {
System.out.println(KeyBoardName+"安全拔出了电脑");
}
// 键盘的独有功能:扣字
public void tap(){
System.out.println(KeyBoardName+"敲击了一段优美的中国话");
}
}
//定义usb实现类鼠标,让其实现usb接口
public class Mouse implements USB{
//定义鼠标名字
private String MouseName;
//提供有参无参构造器,提供变量getter,setter方法暴露取值和赋值
public Mouse() {
}
public Mouse(String mouseName) {
MouseName = mouseName;
}
public String getMouseName() {
return MouseName;
}
public void setMouseName(String mouseName) {
MouseName = mouseName;
}
@Override
public void access() {
System.out.println(MouseName+"成功连接上电脑");
}
@Override
public void pullOut() {
System.out.println(MouseName+"安全拔出电脑");
}
// 鼠标的独有功能:点击
public void click(){
System.out.println(MouseName+"双击了屏幕");
}
}
//创建电脑对象
public class Computer{
//定义电脑名字
private String ComputerName;
//提供有参无参构造器,提供getter,setter方法,暴露其取值和赋值
public Computer() {
}
public Computer(String computer) {
ComputerName = computer;
}
public String getComputer() {
return ComputerName;
}
public void setComputer(String computer) {
ComputerName = computer;
}
//方法:模拟电脑开机
public void start() {
System.out.println(ComputerName+"开机了");
}
//提供安装的usb时的入口
public void installUSB(USB usb){
// usb设备连接电脑
usb.access();
// if判读usb接入的是键盘还是鼠标
if (usb instanceof KeyBoard){
// 是键盘就将usb强制转换成键盘
KeyBoard k = (KeyBoard) usb;
k.tap();
// 是鼠标就强制转换成鼠标
}else if (usb instanceof Mouse){
Mouse m = (Mouse)usb;
m.click();
}
// 安全拔出电脑
usb.pullOut();
}
}
public class Test {
public static void main(String[] args) {
// 创建电脑对象
Computer pc1 = new Computer("个人pc");
// 开机
pc1.start();
// 创建键盘,鼠标对象
USB u1 = new KeyBoard("小键");
USB u2 = new Mouse("小标");
// 链接电脑
pc1.installUSB(u1);
pc1.installUSB(u2);
}
}
控制台输出结果: