java基础多态的例子_java基础---25. 接口多态综合案例

1 案例

0bebebf56435880ee74beb6a02837d39.png

2 案例分析

983f32e82e2801350fa5342c701d7523.png

3 代码实现

定义一个接口

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();//关闭设备

}

}

定义一个实现类:鼠标

//鼠标就是一种USB设备

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("鼠标点击");

}

}

定义一个实现类:键盘

//键盘就是一种USB设备

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();//笔记本电脑开机

//1.

// Mouse mouse = new Mouse();

// USB usb = mouse;

//首先进行向上转型 准备一个鼠标供电脑使用

//上两行代码可以改写为

USB usbMouse = new Mouse();//多太写法

//参数要求USB类型,我传递进去的正好就是USB鼠标

computer.useDevice(usbMouse);

//2.

//创建一个usb键盘

Keyboard keyboard = new Keyboard();

//方法参数是USB类型,传递进去的是实现类对象

computer.useDevice(keyboard);//正确写法 向上类型转换 类型与数据类型里的自动类型转换

//使用子类对象、匿名对象也可以

//computer.useDevice(new Keyboard());//也是正确写法

computer.powerOff();//笔记本电脑关机

}

}

/*

笔记本电脑开机

打开鼠标

鼠标点击

关闭鼠标

打开键盘

键盘输入

关闭键盘

笔记本电脑关机

*/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值