Java继承与多态实验报告
西 安 邮 电 大 学
(计算机学院)
课内实验报告
实验名称: 继承与多态
专业名称: 计算机科学与技术
班 级: 计科1405班
学生姓名: 高宏伟
学 号: 指导教师: 刘霞林
实验日期: 2016.10.13
一、实验目的
通过编程和上机实验理解 Java 语言的继承和多态特性,掌握变量的隐藏、方法的覆盖、重载,掌握抽象类和接口的使用。
二、实验要求
1.编写体现类的继承性(成员变量、成员方法、成员变量隐藏)的程序。
2.编写体现类的多态性(成员方法重载)的程序。
3.编写体现类的多态性(构造方法重载)的程序。
4.编写使用接口的程序。
三、实验内容
(一)类的继承
1.创建公共类Student.
(1)编写程序文件 Student.java,源代码如下:
public class Student
{
protectedString name; //具有保护修饰符的成员变量
protected int number;
void setData(String m,int h) //设置数据的方法
{
name =m;
number= h;
}
public void print() //输出数据的方法
{
System.out.println(name+", "+number);
}
}
(2)编译 Student.java,产生类文件Student.class。
2.创建继承的类Undergraduate
(1)程序功能:通过 Student 类产生子类 undergraduate,其不仅具有父类的成员变量
name(姓名)、number(学号),还定义了新成员变量academy(学院)、department
(系)。在程序中调用父类的 print 方法。
编写 Undergraduate 程序:
class Undergraduate extends Student
{
【代码1】 //定义成员变量academy
【代码2】 //定义成员变量department
public static void main(String args[])
{
【代码3】 //创建一个学生对象s
【代码4】 //用父类的setData方法初始化对象s
【代码5】 //对象s调用print方法
【代码6】 //创建一个大学生对象u
【代码7】//调用父类的成员方法setData初始化对象u
【代码8】 //设置对象u的成员变量academy
【代码9】 //设置对象u的成员变量department
System.out.print(u.name+", "+u.number+", "+u.academy+", "+u.department);
}
}
(3)编译并运行程序
注意:公共类 Student 与undergraduate 类要在同一文件夹(路径)内。
(二)方法的重载
(1)程序功能:对不同的数进行排序输出。在IntSort 类中定义3 个同名的方法sort。
(2)编写Sort.java 文件,源代码如下。
import java.awt.Graphics;
import java.applet.Applet;
class IntSort {
public String sort(int a, int b) {
if (a>b)
return a+""+b;
else
return b+""+a;
}
public String sort(int a, int b, int c) {
int swap;
if (a
swap=a;
a=b;
b=swap;
}
if (a
swap=a;
a=c;
c=swap;
}
54
if (b
swap=b;
b=c;
c=swap;
}
return a+""+b+""+c;
}
pub