接口案例
接口:
public interface USB {
public abstract void open();
public abstract void close();
}
电脑类:
public class Computer {
public void powerOn(){
System.out.println("笔记本电脑开机");
}
public void powerOff(){
System.out.println("笔记本电脑关机");
}
//使用USB设备的方法,使用接口作为方法的参数
public void useDevice(USB usb){
usb.open();
if(usb instanceof Mouse){
Mouse mouse=(Mouse) usb;//向下转型
mouse.click();
}else if(usb instanceof Keyboard){
Keyboard keyboard=(Keyboard) usb;//向下转型
keyboard.type();
}
usb.close();
}
}
鼠标类:
public class Mouse implements USB{
@Override
public void open() {
System.out.println("打开鼠标");
}
@Override
public void close() {
System.out.println("关闭鼠标");
}
//实现类中特有的方法
public void click(){
System.out.println("点击鼠标");
}
}
键盘类:
public class Keyboard implements USB{
@Override
public void open() {
System.out.println("打开键盘");
}
@Override
public void close() {
System.out.println("关闭键盘");
}
//实现类中特有的方法
public void type(){
System.out.println("键盘输入");
}
}
主函数调用:
public class DemoMain {
public static void main(String[] args) {
//首先创建一个笔记本电脑
Computer computer = new Computer();
computer.powerOn();
//准备一个鼠标,供电脑使用
USB usbMouse = new Mouse();//向上转型
computer.useDevice(usbMouse);
//参数是USB类型,我正好传递进去的就是USB鼠标
Keyboard keyboard = new Keyboard();
//方法参数是USB类型,传递进去的是实现类对象
computer.useDevice(keyboard);
computer.powerOff();
}
}