一、面向抽象编程

7175 编程题 编程语言:Java
題目內容:
使用接口或者抽象类编写程序实现显示员工基本信息。具体要求如下:
(1)使用接口或者抽象类实现基类Employer(体会接口和抽象类的不同),包含姓名、部门和工资三个属性,显示工资的方法showSalary()和显示奖金的抽象方法showBonus();提示:因每位职工奖金不同,showBonus()方法定义为抽象方法,只抽象定义,不具体实现;
(2)定义BasicEmployee和GoodEmployee类,重写Employer类中的方法,不同员工有不同的工资和奖金;
(3)定义主类进行测试,要求输入两个不同的员工信息,并输出其个人信息。

输入输出说明:
输入:
张三 前台 5000
李四 开发 6000 4000
输出:
我叫张三,在前台部门,我的工资是5000.0
我是普通员工,没有奖金,加油升级!
我叫李四,在开发部门,我的工资是6000.0
我是优秀员工,我的奖金是4000.0

代码:

import java.util.*;abstract class Employer {//定义抽象类作为父类String name;//姓名String department;//部门double salary;//工资double bonus;//奖金abstract void showSalary();//输出工资的抽象方法abstract void showBonus();//输出奖金的抽象方法}class BasicEmployee extends Employer {BasicEmployee(String n,String d,double s) {this.name=n;this.department=d;this.salary=s;}void showSalary() {System.out.printf("我叫%s,在%s部门,我的工资是%.1f\n",this.name,this.department,this.salary);}void showBonus() {System.out.printf("我是普通员工,没有奖金,加油升级!\n");}}class GoodEmployee extends Employer {GoodEmployee(String n,String d,double s,double b) {this.name=n;this.department=d;this.salary=s;this.bonus=b;}void showSalary() {System.out.printf("我叫%s,在%s部门,我的工资是%.1f\n",this.name,this.department,this.salary);}void showBonus() {System.out.printf("我是优秀员工,我的奖金是%.1f\n",this.bonus);}}public class Main {public static void main(String[] args) {Scanner cin=new Scanner(System.in);Employer e;String n1=cin.next();String d1=cin.next();int s1=cin.nextInt();e=new BasicEmployee(n1,d1,s1);e.showSalary();e.showBonus();String n2=cin.next();String d2=cin.next();int s2=cin.nextInt();int b2=cin.nextInt();e=new GoodEmployee(n2,d2,s2,b2);e.showSalary();e.showBonus();  }}

二、面向接口编程

7178 编程题 编程语言:Java
題目內容:
编写一个USB接口程序,模拟计算机启动过程和关闭过程启动过程中要加载鼠标、键盘、麦克风等USB设备,具体要求如下:
(1)定义一个接口USB,包含两个抽象方法turnOn()he turnOff(),分别用于表示USB设备的启动和关闭
(2)编写鼠标Mouse、键盘KeyBoard、麦克风Mic类,实现接口中的turnOn()、turnOff()方法,方法中显示“XX设备启动了”或“XX设备关闭了”即可
(3)编写计算机类Computer,要求有一个表示计算机上USB插槽数量的数组;添加USB设备的方法add(USB usb),功能为遍历所有插槽,如果有空闲的就添加一个USB设备
模拟开机启动USB设备的powerOn()方法,功能为遍历所有USB接口,如果连接了USB设备,则启动USB设备,然后显示“计算机开机成功”
模拟关机关闭USB设备的powerOff()方法,功能为遍历所有USB接口,如果连接了USB设备,则关闭USB设备,然后显示“计算机关机成功”
(4)编写测试类,要求建立计算机对象,建立鼠标、键盘、麦克风对象,并添加到计算机中,启动计算机,关闭计算机

输入输出说明:
无输入;
输出:
鼠标启动了
键盘启动了
麦克启动了
计算机开机成功
鼠标关闭了
键盘关闭了
麦克关闭了
计算机关机成功

代码:

import java.util.*;interface USB {//定义接口void turnOn();void turnOff();
}class Mouse implements USB {final String name="鼠标";public String getName() {return this.name;}public void turnOn() {System.out.printf("%s启动了\n",getName());}public void turnOff() {System.out.printf("%s关闭了\n",getName());}}class KeyBoard implements USB {final String name="键盘";public String getName() {return this.name;}public void turnOn() {System.out.printf("%s启动了\n",getName());}public void turnOff() {System.out.printf("%s关闭了\n",getName());}}class Mic implements USB {final String name="麦克";public String getName() {return this.name;}public void turnOn() {System.out.printf("%s启动了\n",getName());}public void turnOff() {System.out.printf("%s关闭了\n",getName());}}class Computer {USB usb[]=new USB[10];//定义USB接口数组int number;public void add(USB u) {usb[++number]=u;}public void powerOn() {for(USB u:usb) {if(u!=null)u.turnOn();}System.out.printf("计算机开机成功\n");}public void powerOff() {for(USB u:usb) {if(u!=null)u.turnOff();}System.out.printf("计算机关机成功\n");}}public class Main {public static void main(String[] args) {Computer c=new Computer();c.add(new Mouse());c.add(new KeyBoard());c.add(new Mic());c.powerOn();c.powerOff();}}

Java 抽象类与接口 编程练习相关推荐

  1. 没有体现JAVA接口功能_深入浅出分析Java抽象类和接口【功能,定义,用法,区别】...

    本文实例讲述了Java抽象类和接口.分享给大家供大家参考,具体如下: 对于OOP编程来说,抽象是它一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:抽象类和接口. 这两者有相似之处也有很 ...

  2. java 抽象类和接口2--什么时候用接口什么时候用抽象类

    java 抽象类和接口1–基本概念 https://blog.csdn.net/qq_26296197/article/details/81315685 从生活的角度看 把编程映射会日常生活进行对照, ...

  3. java接口vm和dto的区别_第十八节:详解Java抽象类和接口的区别

    前言 对于面向对象编程来说,抽象是它的特征之一. 在Java中,实现抽象的机制分两种,一为抽象类,二为接口. 抽象类为abstract class,接口为Interface. 今天来学习一下Java中 ...

  4. java定义一个door的类_再探Java抽象类与接口的设计理念差异

    原文:http://blog.csdn.net/sunboard/article/details/3831823 1.概述 一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是 ...

  5. JAVA抽象类和接口的深入探讨

    Java 语言中,抽象类(abstract class) 和接口(interface) 是抽象思想的两种体现形式.初学者很容易把这两者搞混,所以Java面试中考抽象类和接口的区别的面试题也常有出现的. ...

  6. JAVA学习经验--总结JAVA抽象类和接口

    * --总结JAVA抽象类和接口  * 1.抽象类:  *             1>抽象类可以修饰方法,修饰类,但不能修饰属性,不能被实例化  *             2>抽象类可 ...

  7. JAVA抽象类和接口类的区别

    JAVA抽象类和接口类的区别 1.声明方式不同.抽象类为abstract class,接口类为interface. 2.继承抽象类关键字为extends,实现接口关键字为implements. 3.继 ...

  8. 再探Java抽象类与接口的设计理念差异

    Java抽象类与接口都可以实现功能与实现的分离,都对多态提供了很好的支持,那么我们什么时候应该使用抽象类或接口呢?在以前的一篇文章初探Java抽象类与接口中谈到了他们语法的区别,在博客通过模板方法模式 ...

  9. jdk1.8中,java 抽象类和接口的区别

    抽象类 特点: 1.抽象类中可以构造方法 2.抽象类中可以存在普通属性,方法,静态属性和方法. 3.抽象类中可以存在抽象方法. 4.如果一个类中有一个抽象方法,那么当前类一定是抽象类:抽象类中不一定有 ...

最新文章

  1. 【缩点】解题报告:luogu P2746 [USACO5.3]校园网Network of Schools(有向图、强连通分量、缩点)
  2. 【 MATLAB】 Two-step WLS algorithm Simulation of TOA - Based Positioning
  3. CentOS系统启动流程及GRUB文件说明
  4. 远程机房监控设计方案
  5. 连接池超时配置_HttpClient连接池的一些思考
  6. Android性能优化典范第一季
  7. android webview video标签,Android WebView支持html5 video标签
  8. Windows linux子系统安装mysql
  9. 表单设计器 k-form-design
  10. java新增mysql时 中文出现_Java项目往数据库中插入数据,出现中文乱码
  11. linux centos Intel® Centrino® Wireless-N 1000 无线网卡的安装
  12. “千年老二”搜狐:从没有真正意义上成为第一
  13. Ubuntu下编译pcsx2要用到的包
  14. 学会使用help()
  15. stm32 TIM1的CH1N~CH3N、CH1~CH4基本配置
  16. 153870-20-3,S-acetyl-PEG3-alcohol羟基可以反应进一步衍生化合物
  17. 微信吸粉秘籍之人气论坛吸粉方法
  18. SQL计算两个日期之间的工作日天数,去除法定节假日和周末
  19. CSDN外链解决方法 (2022-07-28测试可用)
  20. HTMLa标签常用的四种链接

热门文章

  1. 自己动手写一个操作系统——loader(1)
  2. 蓝桥杯官网刷题记录python
  3. 获取linux系统序列号
  4. Linux 中 4 款炫酷的终端应用程序
  5. DX9显示文字-------VB6编程学习DX9游戏编程DirectX9编程2D小游戏源码冷风引擎CoolWind2D游戏引擎(14)
  6. VS2012编译LibIconv库及示例Demo
  7. 图书资源下载网站收集
  8. 改进的人工鱼群算法求解TSP问题的研究(Matlab代码实现)
  9. “由Autodesk教育版产品制作”水印在打印时怎么去掉的解决办法
  10. Android 蓝牙开发——Avrcp协议(十二)