Java 抽象类与接口 编程练习

Posted nefu-ljw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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();
	
	

以上是关于Java 抽象类与接口 编程练习的主要内容,如果未能解决你的问题,请参考以下文章

抽象类与接口对比

Java基础__慕课网学习(24):深入理解抽象类与接口(转)

Java抽象类与接口

java抽象类与接口 中 相同方法的调用

C#中抽象类与接口的区别

Java抽象类与接口的区别