Java实验五
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五继承、抽象类和接口
学号201617406 姓名刘顺专业网络工程成绩
【实验目的与要求】
1、掌握Java中类的继承、变量继承、方法继承的思想和使用;
2、理解和掌握java中多态性的覆写和重载的区别和用法;
3、掌握抽象和接口的工作机制和用法;
4、实验后及时总结、归纳、分析,并完成实验报告。
【实验内容与要求】
1、继承和覆盖的使用
(1)编写Employee雇员类,在该类中定义了3个域:name表示员工姓名,salary表示员工的工资,work表示工作:“编写程序”,并分别为它们定义了set和get方法。
(2)编写Manager经理类,该类继承自Employee雇员类。在该类中,定义了一个bonus域,表示经理的奖金,重写work方法:“管理项目”。
(3)在主类中,创建Employee雇员和Manager经理对象,并为其赋值,输出其信息。
2、抽象类的定义和使用
(1)定义抽象类Aniaml动物抽象类,通过构造方法得到动物名字并输出;定义抽象方法shout()表示叫声;定义抽象方法eat()表示吃食。
(2)定义Cat类继承自Animal类,调用父类的构造方法输出猫的名字信息。实现抽象方法shout(“猫叫:喵喵喵!”) ;实现抽象方法eat(“猫喜欢吃:鱼”)。
(3)定义Dog类继承自Animal类,调用父类的构造方法输出狗的名字信息。实现抽象方法shout(“狗叫:汪汪汪!”) ;实现抽象方法eat(“狗喜欢吃:骨头”)。
(4)在主方法中,实例化“小猫”和“小狗”,并向上转型赋给Aniaml类变量Animal ani =new Cat("
小猫"); 分别调用ani的shout()和eat()方法。
3、接口的定义和使用
(1)定义一个USB接口标准,定义2个抽象方法:USB设备信息显示show();USB设备开始工作start();USB 设备停止工作stop();
(2)定义U盘子类,class Flash implements USB实现USB接口标准,实现方法:USB接入产品信息show (“USB设备已经接入”);设备启动信息start(“USB设备已经启动”);设备停止动作信息stop(“USB设备已经停止”);
(2)定义打印机子类,class Print implements USB实现USB接口标准,实现方法:打印机接入产品信息show (“打印机已经接入”);设备启动信息start(“打印机已经启动”);设备停止动作信息stop(“打印机已经停止”);
(3) 定义Computer类,定义插入USB方法plugin(USB usb) ,调用接口方法,实现接口功能。
(4) 在主类中定义Computer 的对象,分别调用方法plugin(USB Flash)表示插入Flash优盘,plugin(USB print) 表示插入打印机。
【实验过程与结果】
实验1:
实验程序
class Employee{ //父类(员工类)
private String name; //私有成员变量姓名
private double salary; //私有成员变量工资
private String work; //私有成员变量工作
//成员变量赋值
public void setname(String name){
=name;
}
public void setsalary(double salary){
this.salary=salary;
}
public void setwork(String work){
this.work=work;
}
//成员变量输出
public void getname(){
System.out.println("姓名:"+name);
}
public void getsalary(){
System.out.println("工资:"+salary);
}
public void getwork(){
System.out.println("工作:"+work);
}
}
class Manager extends Employee{ //子类(经理类)
private double bonus; //私有成员变量奖金
private String work; //私有成员变量工作
//成员变量赋值
public void setbonus(double bonus){
this.bonus=bonus;
}
//成员变量输出
public void getbonus(){
System.out.println("奖金:"+bonus);
}
//成员变量赋值
public void setwork(String work){
this.work=work;
}
//成员变量输出
public void getwork(){
System.out.println("经理工作:"+work);
}
}
public class Company {
public static void main(String[] args) {
Employee p1=new Employee(); //实例化对象p1(员工)
Manager p2=new Manager(); //实例化对象p2(经理)
p1.setname("小明"); //员工姓名
p1.setsalary(5000); //员工工资
p1.setwork("编写程序"); //员工工作
p1.getname(); //调用输出
p1.getsalary(); //调用输出
p1.getwork(); //调用输出
System.out.println("***** ***分*** ***割*** ***线*** *****");