实验二继承和接口
班级: B13511 学号: 20134051101 姓名:李哲成绩:
一、实验目的
1、掌握类的继承
2、掌握接口的定义及使用
3、通过实验使学生理解继承和接口的概念,并能创建和正确使用接口解决实际问题。
二、实验内容及要求
1、已知类A和子类B,类的定义如下所示:
class A{
public void f(){
System.out.println("calling A's f()");
}
public void af(){
System.out.println("calling A's af()");
}
}
class B extends A{
public void f(){
System.out.println("Calling B's f()");
}
public void bf(){
System.out.println("calling B's bf()");
}
}
在测试类里创建了4个对象:a、b、c、d,则列举出4个对象可以调用的所有方法。
public class CastDemo {
public static void main(String[] args) {
A a = new A();//a对象
B b = new B();//b对象
A c = new B();//c对象
B d = (B)c;//d对象
}
}
2、定义接口ShapeCompute,包含抽象方法getArea()和getPerimeter()用于计算图形的面积和周长。定义类Rectangle
(矩形)、类Circle(圆形)和类Triangle(三角形)继承类Coordinates(点)并实现接口的抽象方法。定义Test 类完成测试功能:生成各个形状对象,调用对象的display()方法,输出对象的描述信息。Test类放在test包中,其他类放在shape包中。
3、这是一个关于装配汽车的问题,我们这里只研究何如通过程序来模拟汽车装配发动机。
(1)设计一个发动机接口(IEngine),需要提供如下功能:启动(start) 、停止(stop) 、加速(speedup) 提示:设计接口的意义在于只要发动机实现了这些功能就可以装在我的汽车上。
(2)设计两个发动机满足以上功能。
第一个发动机叫"红旗",实现功能: a. 启动方法中显示"红旗启动,速度60"。
b. 停止方法中显示"红旗停止,速度0"。
c. 加速方法中显示"红旗加速,速度80"。
第二个发动机叫"奇瑞",实现功能: a. 启动方法中显示"奇瑞启动,速度40"。
b. 停止方法中显示"奇瑞停止,速度0"。
c. 加速方法中显示"奇瑞加速,速度120"。
(3)设计一个汽车类(Car),汽车应该有一个方法用来测试发动机的性能,叫testEngine()。
这个方法里主要有以下内容:
a.测试发动机启动
b.测试发动机加速
c. 测试发动机停止
在现实生活中,我买了一辆车(提示:main中新建了一个汽车类),然后我首先把一个奇瑞的发动机装在了我的汽车上(提示:新建了一个奇瑞对象,),然后测试一下发动机。然后我发现我不喜欢红旗的发动机,于是我换了一个
奇瑞的发动机,然后重新测试一下。
三、实验步骤
1.运行结果:
2.代码:
运行结果:
3.
代码:
运行结果:
四、实验总结
本次实验学会了继承、接口的综合使用,根据老师例题及课本上知识完成本次实验。
实验中遇到的问题:
1、第一题中A类B类对象的调用方法还不太清楚,虽然通过实验得到结果但是还是不太理解;
2、对于super()还有点不理解,自己写代码的话还不太会用。