首页 > 其他分享 >多态实例

多态实例

时间:2023-04-01 13:23:18浏览次数:40  
标签:System usb void 多态 name 实例 public USB

package 多态;

//USB接口
//定义USB的规范,必须要完成接入和拔出的功能
//定义2个USB设备,鼠标,键盘

interface USB {
void connect();//接入
void unconnect();//拔出
}
class Mouse implements USB{

private String name;

public Mouse(String name){
this.name = name;
}

//双击方法
public void dbclick(){
System.out.println("双击");
}

@Override
public void unconnect() {
System.out.println("成功的拔出了电脑");
}
@Override
public void connect() {
System.out.println("成功的接入了电脑");

}
}
class Keyboard implements USB{
private String name;

public Keyboard(String name) {
this.name = name;
}


//按键方法
public void keyDown(){
System.out.println("按键,写下了");
}

@Override
public void connect() {
System.out.println("成功的接入了电脑");

}

@Override
public void unconnect() {
System.out.println("成功的拔出了电脑");
}
}
class Computer{

//提供一个安装USB设备的入口
public void install(USB usb){
usb.connect();


//usb可能是鼠标,也可能是键盘,一下作做判断
if(usb instanceof Mouse){
Mouse m = (Mouse) usb;
m.dbclick();
}else if(usb instanceof Keyboard){
Keyboard k = (Keyboard)usb;
k.keyDown();
}

usb.unconnect();
}
}
class Test{


public static void main(String[] args) {
Computer c = new Computer();

USB xiaomi = new Mouse("小米鼠标");
c.install(xiaomi);

USB luoji = new Keyboard("罗技");
c.install(luoji);
}
}

标签:System,usb,void,多态,name,实例,public,USB
From: https://www.cnblogs.com/mqsjy/p/17278469.html

相关文章

  • R语言GAMLSS模型对艾滋病病例、降雪量数据拟合、预测、置信区间实例可视化
    GAMLSS模型是一种半参数回归模型,参数性体现在需要对响应变量作参数化分布的假设,非参数性体现在模型中解释变量的函数可以涉及非参数平滑函数,非参数平滑函数不预先设定函数关系,各个解释变量的非线性影响结果完全取决于样本数据。它克服了GAM模型和广义线性模型(GeneralizedLinearM......
  • .Net6/C# 百度网盘下载实例
    前置要求:有百度账号,实名认证以及开发者认证,创建应用并获取到关键凭证:Appid、Appkey、Secretkeyk和Signkey         平台上入门十分清楚,直接对着逐步操作即可,个人开发者审核也很快百度网盘开放平台地址如下:https://pan.baidu.com/union/doc/nksg0sbfs因为平台......
  • 多态总结
    多态之虚方法:父类使用virtual标记为虚方法,子类使用override重写,实例化对象的时候,里面装的谁的对象就调用谁的方法。 多态之抽象类:当父类中的方法不知道如何实现的时候,可以考虑写个抽象的父类,将子类方法写成抽象方法。虚方法和抽象类的区别:虚方法的父类是有实现的,可以调用......
  • 多态的实现
    多态的实现定义:由继承加虚函数实现分类:-静态多态(重载):在编译时期就决定调用的函数,根据参数列表来决定。-动态多态(子类重写父类的虚函数来实现)在运行期间决定虚函数相关:类中含有虚函数时,编译器会为该类生成一个虚函数表,保存该类的虚函数地址派生类继承基类时,编译器......
  • 水平导航条实例
    水平导航条实例创建一个水平导航条,在鼠标移动到选项后修改背景颜色。实例ul{list-style-type:none;margin:0;padding:0;overflow:hidden;margin:0px;padding:0px;color:gray;">#333;}li{float:left;}lia{display:block;color:white;text-alig......
  • 永磁同步直线电机仿真实例,仿真教学 maxwell16.0版本 12槽11极
    永磁同步直线电机仿真实例,仿真教学maxwell16.0版本12槽11极包括图中模型以及一个仿真设置要点word文档教程YID:99150643350855880......
  • 面向对象和面向过程(封装继承多态)
    面向对象&面向过程面向过程思想步骤清晰,第一步做什么第二步做什么面对过程适合处理一些简单的问题面向对象思想物以类聚,分类的思维模式对于描述复杂的事物,为了从......
  • MySQL之MHA高可用配置及故障切换实例
      一、MHA概述1.1MHA是什么MHA(MasterHighAvailability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。MHA的出现就是解决MySQL单点的问......
  • 进程消息队列实例
    //write.c#include<sys/types.h>#include<sys/ipc.h>#include<sys/msg.h>#include<stdio.h>structmymesg{longmtype;//消息的类型,是一个整数且大于0......
  • c++11 std::thread 线程实例在退出后管理线程调用join()后再新建线程将可能会产生相同
    [03-2816:52:54.372][info][vthread.cpp:92operator()()]createnewthread,id:4,tid:7f5cbb7fd640,inroduce:testvthread003[03-2816:52:54.372][info][vthread......