首页 > 编程语言 >【Java】接口多态练习题

【Java】接口多态练习题

时间:2022-10-31 13:09:07浏览次数:36  
标签:练习题 Java USB mb void 多态 网卡 声卡 public


设计一个USB接口,USB接口拥有启动和停止方法,网卡类实现USB接口,重写实现网卡启动停止方法
声卡类实现USB接口,重写实现声卡启动和停止方法,
主板类拥有使用USB接口的方法。方法接收USB接口类型或子类型,方法中可以启动对应实现类的方法。
根据上要求编写代码,保证下列main方法打印如下结果:

public class Demo {
public static void main(String [] args){
//创建主板对象
MainBoard mb=new MainBoard();
//创建网卡对象
NetworkCard nc=new NetworkCard();
//启动网卡
mb.startPCICard(nc);
//停止网卡
mb.stopPCICard(nc);
//创建声卡对象
SoundCard sc=new SoundCard();
//启动声卡
mb.startPCICard(sc);
//停止声卡
mb.stopPCICard(sc);
}
}

网卡启动 ...
网卡停止...
声卡启动...
声卡停止...

参考答案:
——————————————————————————————————————————————————————————————————————

public class Demo {
public static void main(String [] args){
MainBoard mb=new MainBoard(); //创建主板对象
NetworkCard nc=new NetworkCard(); //创建网卡对象
mb.startPCICard(nc); //启动网卡
mb.stopPCICard(nc); //停止网卡
SoundCard sc=new SoundCard(); //创建声卡对象
mb.startPCICard(sc); //启动声卡
mb.stopPCICard(sc); //停止声卡
}
}interface USB //PCI接口
{
void start();
void stop();
}
class NetworkCard implements USB { //网卡继承PIC接口
public void start(){
System.out.println("网卡启动 ...");
}
public void stop(){
System.out.println("网卡停止...");
}
} class SoundCard implements USB //声卡继承PIC接口
{
public void start(){
System.out.println("声卡启动...");
}
public void stop(){
System.out.println("声卡停止...");
}
}
class MainBoard{ //主板
public void startPCICard(USB p){
p.start();
}
public void stopPCICard(USB p){
p.stop();
}
}


——————————————————————————————————————————————————————————————————
汽车租赁
某汽车租赁公司出租多种车辆,车辆信息包括:车牌号、品牌、颜色、租金。
出租价格如下:
 * 别克商务: 600元/天
 * 宝马550i: 500元/天
 * 别克林荫大道: 300元/天
 * 客车16座以下: 800元/天
 * 客车>=16座: 1500元/天

定义租赁抽象类Reckon用于计算租金:
    * 接口中有如下属性:车牌号、品牌、颜色、租金、出租时间(当前毫秒值)
    * 接口中定义计算租金的方法money,方法接收Reckon以及子类类型。可以计算租金并返回。
    
定义轿车Car类,继承Reckon。
    * 拥有属性:使用天数 Integer days,提供get/set方法
    * 提供构造方法,可以初始化Car对象的车牌号、品牌、颜色、租金、出租时间
    * 重写接口money方法,根据小汽车的品牌和租用天数计算租金并返回租金。

定义客车Bus类,继承Reckon。
    * 拥有属性:1.使用天数 Integer days,提供get/set方法
                2.成员人数 Integer num,提供get/set方法
    * 提供构造方法,可以初始化Bus对象的车牌号、品牌、颜色、租金、出租时间
    * 重写接口money方法,根据客车的载客量范围和租用天数计算租金并返回租金。

定义一个客户Person类:
    *拥有属性:金额 Integer money 
    *学生自己设计属性,表示出客户可以租用多种车型。
    *提供属性的get/set方法

创建测试类:
    1. main方法中创建一个客户Person,初始化拥有的金额,假设为10000,
    2. main方法中该客户可以多次租车:
        * 控制台打印要租车的类型,接收要租车的天数
        * 根据选择创建对应的车型对象,并讲该对象与客户绑定关系(客户对象可以通过get方法获取到该车)。
        * 每租一辆车要打印当前剩余的金额
        * 当客户的金额不足时退出租车服务。
        * 或者当客户输入的是0时,退出服务
        * 将客户所组的车保存到项目下的dir目录下的history.txt文件中

    注意事项:同一车型,数据只要一条,例如租了2次宝马550i,则保存的是
    京A88888,,宝马550i,红色,21412341232,2辆
    
拓展:
    思考如何创建一个租赁公司类有20辆车,车可以借出给不同客户,客户可以归还汽车。
    将租出的车数据保存到文件中,
    读取文件中的租车数据,计算租赁公司的的收入。
    
欢迎来到租赁中心!
钱数是:10000
请输入租赁的类型:1.轿车 2.客车
2
请输入租赁天数
10
请输入要乘坐人数:16人以下800/天,16人(含)以上1500/天
10
钱数是:2000
----------------------------
请输入租赁的类型:1.轿车 2.客车
1
请输入租赁天数
3
请输入要租赁的车型
     1.别克商务 600元/天
    2.宝马550i 500元/天
    3.别克林荫大道 300元/天
1
钱数是:200
----------------------------
请输入租赁的类型:1.轿车 2.客车
1
请输入租赁天数
1
请输入要租赁的车型
     1.别克商务 600元/天
    2.宝马550i 500元/天
    3.别克林荫大道 300元/天
1
租金不足,还剩下200
----------------------------
请输入租赁的类型:1.轿车 2.客车
0
服务结束

_________________________________________________________

创建人类Person,人类拥有属性:姓名name,年龄age,生日birthday,属性都私有。
    * 提供属性的get/set方法
    * 提供无参和满参构造方法
    
创建子类教师类Teacher,继承Person类。
创建子类厨师类Chef,继承Person类。

创建测试类,读取source.txt中的文件,
    1.数据读取(思考如何把数据放入ArrayList集合 或者 HashMap结合如何操作)
        * 在mian方法中将每条数据封装进对应类对象中,例如第一条是厨师,则将数据封装进厨师Chef类。
        * 将所有对象保存进一个集合中。
    2.数据判断(思考如果把数据放入ArrayList集合 或者 HashMap结合如何操作)
        * 创建方法total,接收main方法中的对象集合,方法中统计每种对象的数量,打印统计结果如下:
            厨师:2人
            教师:3人
    
source.txt
曹操,35,1990年10月,厨师
司马懿,32,1989年12月,教师
孙权,40,1982年05月,厨师
诸葛亮,28,1996年2月,教师
周瑜,29,1991年11月,教师

——————————————————————————————————————————————————————————

 

标签:练习题,Java,USB,mb,void,多态,网卡,声卡,public
From: https://blog.51cto.com/u_15680317/5809180

相关文章

  • java如何引用外部类(文末有视频讲解)
    导航​​步骤1全限定名​​​​步骤2编译,报错,欧耶~​​​​步骤3访问权限修饰符​​​​步骤4编译和运行Demo.java​​​​步骤5导入包​​​​步骤6导入静态方......
  • java访问权限讲解(文末有视频教程)
    导航​​步骤1图解​​​​步骤2public对于class是最常用的​​​​步骤3protected多用于继承的情况​​​​步骤4private一般就是用于属性​​​​步骤5企业中的......
  • java项目结构分类实战(文末有视频讲解)
    导航​​步骤1分包​​​​步骤2Application​​​​步骤3Customer​​​​步骤4Vip​​​​步骤5目录结构​​​​步骤6下载源码​​​​步骤7视频教程​​......
  • Java算法基础 - 单链表详解(文末有配套视频)
    导航​​步骤1只用Java类能实现吗?​​​​步骤2类里面有顾客属性​​​​步骤3排队打饭​​​​步骤4从一个顾客联系到另一个顾客​​​​步骤5加一个next字段​......
  • java项目如何打包?
    导航​​步骤1编写编译的脚本​​​​步骤2打包脚本​​​​步骤3jar包里面是什么​​D盘下面的tool文件夹已经有三个工具类了(其实是两个,CustNode是为了TuziLinkedLis......
  • Java基础 -- 我是这么理解static关键字的(文末配讲解视频)
    static是java里面的关键字,主要用来修饰属性和方法。打上static标记后,就是静态的,不需要new就可以访问。导航​​假如一个方法没有用到this?​​​​static的意义​​​​stati......
  • java项目如何引入其他jar包?
    导航​​步骤1lib目录​​​​步骤2修改编译脚本​​​​步骤3编译cstmgr项目​​​​步骤4新的运行方式​​​​步骤5不妨把编译和打包放一起​​​​步骤6总......
  • idea将所有的代码放在一个txt文件里面-java代码
    最近在申请软件著作权要求把所有的代码放在一个txt文件里一个类一个类复制我觉得太傻了,用java写了一个小程序,记录一下packagecom.ynk;importjava.io.*;importjava.util.......
  • java 权限修饰符private
    private修饰后,当前变量只能在当前的内中才能操作//定义一个学生类classStudent{Stringname;privateintscore;publicvoidsetScore(ints){......
  • java中如何修改事务的隔离级别
    事务的特性:原子性(Atomicity)原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。(多条语句要么都成功,要么都失败。)一致性(Consistency)事务前后数......