当前位置:文档之家› Java实验五

Java实验五

实验五继承、抽象类和接口学号 6 姓名刘顺专业网络工程成绩【实验目的与要求】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(“打印机已经接入”);设备启动信息s tart(“打印机已经启动”);设备停止动作信息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){=salary;}public void setwork(String work){=work;}//成员变量输出public void getname(){"姓名:"+name);}public void getsalary(){"工资:"+salary);}public void getwork(){"工作:"+work);}}class Manager extends Employee{ //子类(经理类)private double bonus; //私有成员变量奖金private String work; //私有成员变量工作//成员变量赋值public void setbonus(double bonus){=bonus;}//成员变量输出public void getbonus(){"奖金:"+bonus);}//成员变量赋值public void setwork(String work){=work;}//成员变量输出public void getwork(){"经理工作:"+work);}}public class Company {public static void main(String[] args) {Employee p1=new Employee(); //实例化对象p1(员工)Manager p2=new Manager(); //实例化对象p2(经理)("小明"); //员工姓名(5000); //员工工资("编写程序"); //员工工作(); //调用输出(); //调用输出(); //调用输出"***** ***分*** ***割*** ***线*** *****");("小李"); //经理姓名(5000); //经理工资(); //调用输出(); //调用输出(2000); //经理奖金("管理项目"); //经理工作(); //调用输出(); //调用输出// TODO自动生成的方法存根}}实验结果:仅供参考:实验分析本实验主要考查Java中类的继承和覆盖,其中包括方法的继承和变量的继承,方法的重写。

我先写了一个Employee雇员类,该类作为父类,在该类中定义了3个成员变量:name、 salary、 work,并分别为它们定义了set和get方法。

set方法为成员变量赋值,get方法输出成员变量信息。

之后又定义了Manager经理类,该类作为子类继承自Employee雇员类,在该类中定义了一个bonus成员变量,表示经理的奖金,重写work方法表示经理的工作,经理的其他信息都可继承自父类雇员类,且不需重写。

最后在主方法中,分别创建Employee雇员的对象P1和Manager经理的对象P2,调用set和get方法即可,输出其信息。

实验2:实验程序abstract class Animal{String name;public Animal(String name){=name;"动物:"+name);}abstract public void getname();abstract public void shout();abstract public void eat();}class Cat extends Animal {public Cat(String name) {super(name);}public void getname(){};public void shout(){"猫叫:喵喵喵!");}public void eat(){"猫喜欢吃:鱼!");}}class Dog extends Animal{public Dog(String name) {super(name);}public void getname(){}public void shout(){"狗叫:汪汪汪!");}public void eat(){"狗喜欢吃:骨头!");}}public class Zoon {public static void main(String[] args) { Animal ani1 =new Cat("小猫");();();Animal ani2 =new Dog("小狗");();();// TODO自动生成的方法存根}}实验结果:参考结果:实验分析在本实验中,主要是考查对抽象类的定义和使用。

相对来说和上一实验的继承有同源方法,理解上更简单。

首先,我定义了一个抽象类Aniaml,可以理解为他就是父类,通过构造方法得到动物名字并输出,同时定义抽象方法shout()表示叫声,定义抽象方法eat()表示食物。

而后我又定义了Cat类和Dog类均继承自Animal类,也可以理解为他们是Animal类的子类,可以直接调用父类的构造方法输出名字。

调用实现抽象方法shout和抽象方法eat。

最后在主方法中,实例化“小猫”和“小狗”的对象ani1和ani2,并向上转型赋给Aniaml类变量,分别调用ani1和ani2的shout()和eat()方法即可。

实验3:实验程序interface USB{abstract void show();abstract void start();abstract void stop();}class Flash implements USB{ public void show(){"USB设备已经接入");}public void start(){"USB设备已经启动");}public void stop(){"USB设备已经停止");}}class Print implements USB{ public void show(){"打印机已经接入");}public void start(){"打印机已经启动");}public void stop(){"打印机已经停止");}}class Computer{void plugin(USB usb){();();();}}public class Interface {public static void main(String[] args) {Computer p1=new Computer();(new Flash());(new Print());}}实验结果:参考结果实验分析本实验主要考查接口的定义和使用。

接口(interface)和抽象类(abstract)都可以理解为继承的衍生,接口和抽象类的使用十分相似。

在本实验中,我首先定义了一个USB接口(类比于抽象类),和3个抽象方法,USB设备信息显示show(),USB设备开始工作start(),USB设备停止工作stop()。

相关主题