package duotai.lianxi1.lainxi2;
public class Computer {
public void powerOn(){
System.out.println("开机");
}
public void poweroff(){
System.out.println("关机");
}
//使用USB设备的方法 使用接口作为方法的参数
public void usbDe(Usb usb){
usb.open(); //打开设备
if (usb instanceof Mouse){
Mouse mouse=(Mouse) usb; // 一点要先判断
mouse.click(); //向下转型
}
else if (usb instanceof Keyboard){ //先判断
Keyboard keyboard=(Keyboard) usb; //向下转型
keyboard.tyep();
}
usb.close(); //关闭设备
}
}
~~~~~~~~
package duotai.lianxi1.lainxi2;
//
public class Keyboard implements Usb {
@Override
public void open() {
System.out.println("打开键盘");
}
@Override
public void close() {
System.out.println("关闭键盘");
}
public static void tyep(){
System.out.println("键盘输入");
}
}
~~删除线格式~~
package duotai.lianxi1.lainxi2;
public class Mouse implements Usb {
@Override
public void open() {
System.out.println("打开鼠标");
}
@Override
public void close() {
System.out.println("关闭鼠标");
}
public static void click(){
System.out.println("点击鼠标");
}
}
====
package duotai.lianxi1.lainxi2;
public class Test {
public static void main(String[] args) {
Computer computer1=new Computer();
computer1.powerOn();
Mouse mouse=new Mouse();
//先向上转型为接口 然后再调用
Usb usbmouse=mouse; //多态写法
//参数是Usb接口类型鼠标
computer1.usbDe(usbmouse);
// 创建一个usb键盘
Keyboard keyboard=new Keyboard();//没有写多态写法
//方法参数是Usb类型,传递进去的是实现类对象
computer1.usbDe(keyboard); //正确写法 也发生了向上转型
//使用子类对象 匿名对象也是可以的
// computer1.usbDe(new Keyboard()); 也是正确写法
computer1.poweroff();
System.out.println("======例子");
method(10.0);//正确写法 double-->double
method(10);//正确写法 int-->double
int a=10;
method(a);//正确写法 int-->double
}
public static void method(double n){
System.out.println(n);
}
}
====
package duotai.lianxi1.lainxi2;
public interface Usb {
public abstract void open();
public abstract void close();
}
笔记本接口实现案例
猜你喜欢
转载自blog.csdn.net/AFacetoj/article/details/88183547
今日推荐
周排行