我们鼠标和键盘实现USB接口,那么我们鼠标和键盘就变成了USB设备,这时候我们就可以把它放到笔记本电脑里面去用

 package com.biggw.day10.demo07;

 /**
* @author gw
* @date 2019/11/2 0002 下午 16:46
*/
public class Computer {
public void open() {
System.out.println("打开电脑!");
} public void close() {
System.out.println("关闭电脑!");
} public void useDevice(Usb usb) {
if (usb instanceof KeyBorad) {
KeyBorad keyBorad = (KeyBorad) usb;
keyBorad.open();
keyBorad.type();
keyBorad.close();
} else if (usb instanceof Mouse) {
Mouse mouse = (Mouse) usb;
mouse.open();
mouse.click();
mouse.close();
}
}
}

Computer

 package com.biggw.day10.demo07;

 /**
* @author gw
* @date 2019/11/2 0002 下午 16:42
*/
public interface Usb {
public abstract void open(); public abstract void close();
}

Usb 接口

 package com.biggw.day10.demo07;

 /**
* @author gw
* @date 2019/11/2 0002 下午 16:44
*/
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("点击鼠标!");
}
}

Mouse Usb接口的实现类

 package com.biggw.day10.demo07;

 /**
* @author gw
* @date 2019/11/2 0002 下午 16:43
*/
public class KeyBorad implements Usb {
@Override
public void open() {
System.out.println("打开键盘!");
} @Override
public void close() {
System.out.println("关闭键盘!");
} public void type() {
System.out.println("键盘输入文字!");
}
}

KeyBoard Usb接口的实现类

 package com.biggw.day10.demo07;

 /**
* @author gw
* @date 2019/11/2 0002 下午 16:52
*/
public class Main {
public static void main(String[] args) {
Usb usb = new KeyBorad();
Usb usb1 = new Mouse(); Computer computer = new Computer();
computer.open();
computer.useDevice(usb);
computer.useDevice(usb1);
computer.close(); /*点击鼠标!
打开电脑!
打开键盘!
键盘输入文字!
关闭键盘!
打开鼠标!
关闭鼠标!
关闭电脑!*/
}
}

Main 方法入口

Java 接口和多态练习的更多相关文章

  1. Java 接口和多态

    接口 1.1 接口的概述 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成.这样 ...

  2. Java接口与多态

    接口 可以理解为一种特殊的类,里面全部是由全局常量(static final)和公共的抽象方法所组成 接口的定义格式 接口的数据成员,只允许被public, static, final修饰. 接口的方 ...

  3. java 接口实现多态

    package unit4; import java.awt.Graphics; public interface Shape { void drowme(Graphics g); double ar ...

  4. Java基础学习笔记八 Java基础语法之接口和多态

    接口 接口概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”.接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成.这样将功能的定义 ...

  5. Java开发知识之Java的继承多态跟接口*

    Java开发知识之Java的继承多态跟接口 一丶继承 1.继承的写法 在Java中继承的 关键字是 extends 代表一个类继承另一个类. 继承的含义以及作用: 继承就是基于某个父类的扩展.制定出来 ...

  6. Java 基础 接口和多态

    接口 接口的概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成.这样将功能的 ...

  7. Java 面向对象之接口、多态

    01接口的概念 A:接口的概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成 ...

  8. Java学习笔记——继承、接口、多态

    浮点数的运算需要注意的问题: BigDecimal operand1 = new BigDecimal("1.0"); BigDecimal operand2 = new BigD ...

  9. java抽象类、多态、接口

    抽象类 抽象类的产生 当编写一个类时,我们往往会为该类定义一些方法,这些方法是用来描述该类的功能具体实现方式,那么这些方法都有具体的方法体. 但是有的时候,某个父类只是知道子类应该包含怎么样的方法,但 ...

随机推荐

  1. 对Canvas的研究

    1.标签定义图形,比如图表和其他图像,您必须使用脚本来绘制图形. 什么是 canvas? HTML5 <canvas> 元素用于图形的绘制,通过脚本 (通常是JavaScript)来完成. ...

  2. Haproxy-4层和7层代理负载实战

    目录 HAProxy是什么 HAProxy的核心能力和关键特性 HAProxy的核心功能 HAProxy的关键特性 HAProxy的安装和运行 安装 运行 添加日志 使用HAProxy搭建L7负载均衡 ...

  3. AOP前世与今生,aspect

    AOP前世与今生 -------------------------------- 1.代码编写重复,(简单重构) 2.改善 3.静态代理(不改变原代码,继乘原来接口),代理类, aop 最原始出发点 ...

  4. XML 验证

    拥有正确语法的 XML 被称为“形式良好”的 XML. 通过 DTD 验证的 XML 是“合法”的 XML. 形式良好的 XML 文档 “形式良好”或“结构良好”的 XML 文档拥有正确的语法. “形 ...

  5. sh_05_函数的参数

    sh_05_函数的参数 def sum_2_num(num1, num2): """对两个数字的求和""" # num1 = 10 # nu ...

  6. vue 使用 axios 时 post 请求方法传参无法发送至后台

    axios 时 post 请求方法传参无法发送至后台报错如下 Response to preflight request doesn't pass access control check: No ' ...

  7. 解析JSON有俩种方式:JSONObject和GSON

    JSONObject: //JSONObject解析JSON文件 private void parseJSONWithJSONObject(String json_data) { try { JSON ...

  8. 初识java虚拟机——JVM

    1.Java程序运行过程 编写 编译 运行 过程如图所示: 2.JVM的认识 定义:JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚 ...

  9. pycharm2019连接mysql错误08801 ------Connection to django1@localhost failed. [08001] Could not create connection to database server. Attempted reconnect 3 times. Giving up.

    Error:Connection to django1@localhost failed. [08001] Could not create connection to database server ...

  10. legend3---2、网站的代码里面的/也是代表根目录

    legend3---2.网站的代码里面的/也是代表根目录 一.总结 一句话总结: 不过这个根目录在public下面 1.mysql删除数据库命令? drop database <数据库名> ...