实验5继承与多态
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验5继承与多态
《面向对象程序设计》实验指导
实验四继承与多态
一、实验目的:
1.掌握类的继承方法。
2.掌握变量的继承和覆盖。
3.掌握方法的继承、重载和覆盖。
4.了解接口的实现方法。
二、实验教学要求
1.性质:必做实验
实验类型:设计性
2.时间要求:需要6学时。
2.对实验室的要求:在windows环境中装有Java开发工具(如J2SE5.0版),以及IE6.0
三、实验原理
新类可从现有的类中产生,并保留现有类的成员变量和方法,并可根据需要对它们加以修改。
新类还可添加新的变量和方法。
这种现象就称为类的继承。
当建立一个新类时,不必写出全部成员变量和成员方法。
只要简单地声明这个类是从一个已定义的类继承下来的,就可以引用被继承类的全部成员。
被继承的类称为父类或超类(superclass),这个新类称为子类。
Java 提供了一个庞大的类库让开发人员继承和使用。
设计这些类是出于公用的目的,因此,很少有某个类恰恰满足你的需要。
你必须设计自己的能处理实际问题的类,如果你设计的这个类仅仅实现了继承,则和父类毫无两样。
所以,通常要对子类进行扩展,即添加新的属性和方法。
这使得子类要比父类大,但更具特殊性,代表着一组更具体的对象。
继承的意义就在于此。
语法格式:
类访问限定符子类名extends 父类名{
……
}
四、实验内容及要求:
1. (1) 定义一个矩形类(Rectangle),派生出一个正方形类(Square);再定义一个圆类(Circle),根据需要定义成员变量,都定义构造方法、计算周长的方法、计算面积的方法、显示的方法;
(2)定义一个接口(ShapeArea),其中包含返回面积的方法(getArea)。
上述三者都要求实现接口ShapeArea,自行扩充成员变量和方法。
在主方法中建一数组,数组中放入一些上述类型的对象,并计算它们的面积之和。
2. 运行下面的程序,理解成员变量的继承与隐藏,方法的覆盖与重载。
class A{
int sum,num1,num2;
public A(){
num1=10;
num2=20;
sum=0;
}
void sum1(){
sum=num1+num2;
System.out.println("sum="+num1+"+"+num2+"="+sum);
}
void sum2(int n){
num1=n;
sum=num1+num2;
System.out.println("sum="+num1+"+"+num2+"="+sum);
}
}
class B extends A{
int num2;
public B(){
num2=200;
}
void sum2(){
sum=num1+num2;
System.out.println("sum="+num1+"+"+num2+"="+sum); }
void sum2(int n){
num1=n;
sum=num1+num2;
System.out.println("sum="+num1+"+"+num2+"="+sum); }
void sum3(int n){
super.sum2(n);
System.out.println("sum="+num1+"+"+num2+"="+sum); }
}
public class Test{
public static void main (String arg[]){
B m=new B();
m.sum1();
m.sum2();
m.sum2(50);
m.sum3(50);
}
}
五、实验报告要求
⑴记录查看的结果。
⑵写出程序编辑、编译及运行结果。