java抽象类和接口编程题_Java 抽象类与接口 编程练习

一、面向抽象编程

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();

}

}

本文同步分享在 博客"nefu_ljw"(CSDN)。

如有侵权,请联系 [email protected] 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

你可能感兴趣的:(java抽象类和接口编程题)