Java实验 继承与接口
一、实验目的
1、理解 Java 语言的继承和多态特性;
2、掌握变量的隐藏、方法的覆盖、重载;
3、掌握抽象类和接口的使用。
二、实验要求
1、根据实验步骤中提出的要求,使用eclipse等开发工具编写相应的Java程序;
2、编译、运行自己所编写的Java程序;
3、根据编译与运行过程中所获得的错误信息修改程序直至获得正确的结果;
4、记录实验中遇到的各类问题并以及解决办法。
三、实验步骤及结果
(1)设计学生类Student。该类包含两个私有成员变量name和no(分别用于存放姓名和学号),以及两个public成员方法,分别为:
void setData(String name,String no) 用于设置姓名和学号;
void print() 用于输出姓名和学号。
(a)编写程序文件 Student.java,源代码如下:
(2)设计继承上述题目(1)的Student 类的子类Undergraduate 。子类Undergraduate不仅具有父类的成员变量name(姓名)、no(学号),还定义新成员变量academy(学院)、department (系);并重载方法void setData(String name,String no, String academy, String department) 用于设置姓名、学号、学院和系;以及重写父类中void print()方法,实现输出姓名、学号、学院和系。在main()方法中创建一个该子类对象s,接着调用相应方法设置一个学生的姓名、学号、学院和系并输出。
(a)编写程序文件 Undergraduate.java,源代码如下:
(b)编译运行程序,其结果如图所示。
(c)使用父类Student声明一个对象变量,使用已创建的子类对象进行赋值,然后使用分类对象调用print()方法,结果跟子类对象调用print()是否有区别?为什么?
Student stu=s;
stu.print();
(3)设计一个动物声音“模拟器”,希望“模拟器”可以模拟许多动物的叫声,要求如下:
A、编写接口Animal
该接口有2个抽象方法:cry()和getAnimalName(),即要求实现该接口的各种具体动物类给出自己的叫声和种类名称。
B、编写模拟器类Simulator
该类有一个playSound(Animal an)方法,该方法的参数为Animal类型,则an可以调用实现Animal接口类重写的cry()方法播放具体动物的声音,调用重写的getAnimalName()方法显示具体动物种类的名称。
C、编写实现Animal接口的Dog类和Cat类。
D、编写主类Application(用户程序),在其main()方法中至少包含如下代码:
Simulator sm=new Simulator();
sm. playSound(new Dog());
sm. playSound(new Cat());
(c)在主类Application中使用匿名类的方式实现小鸡的叫声,源代码和执行结果如下。
四、实验小结
通过本次实验,理解 Java 语言的继承和多态特性,掌握变量的隐藏、方法的覆盖、重载,掌握抽象类和接口的使用。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫