应用数学学院 信息与计算科学专业 2 班 学号3111008162
姓名 许庆平 教师评定_________________
实验题目 继承与接口
一、 实验目的与要求
实验目的:
1、掌握类的继承关系。
2、掌握接口的定义与使用。
实验要求:
按下列要求编写Java程序:
1、定义接口Printx,其中包括一个方法printMyWay(),这个方法没有形参,返回值为空。
2、编写矩形类,矩形类要求实现Printx接口,有求面积、求周长的方法,printMyWay()方法要能显示矩形的边长、面积和周长。
3、编写正方形类作为矩形类的子类,正方形类继承了矩形类求面积和周长的方法,新增加求对角线长的方法,重写printMyWay()方法,要求该方法能显示正方形的边长、面积、周长和对角线长。
二、 实验方案
先按要求定义接口Printx,再创建一个矩形类Rectangle,有成员变量length和width,area()求面积,circle()求周长,用PrintMyWay()显示。
然后定义正方形类,继承Rectangle类,定义求对角线长的函数duijiaoxian()。
面积和周长用父类中的area()和circle()实现。用PrintMyWay()显示。
最后在主类中实现这两个类。
三、代码如下
interface Printx
{ void PrintMyWay();}
class Rectangle implements Printx
{
int length,width;
Rectangle(int x,int y){
length=x;
width=y;
}
int area(){
return length*width;
}
int circle(){
return 2*(length+width);
}
public void PrintMyWay(){
System.out.println("矩形的长为:"+length);
System.out.println("矩形的宽为:"+width);
System.out.println("矩形的面积为:"+area());
System.out.println("矩形的周长为:"+circle());
}
}
class Square extends Rectangle{
int lenth;
Square(int a){
super(a,a);
lenth=a;
}
double duijiaoxian(){
return Math.sqrt(2*length*length);
}
public void PrintMyWay(){
System.out.println("正方形的边长为:"
+lenth+" 正方形的面积为:"+
area()+" 正方形的周长为:"+circle()+" 正方形的对角线长为:"+duijiaoxian())
public class test {
public static void main(String[] args) {
Rectangle p;
p=new Rectangle(2,3);
p.PrintMyWay();
Square s;
s=new Square(4);
s.PrintMyWay();
}
}
四、实验结果和数据处理
三、 结论
在类中定义的方法若要在主类中调用,就要定义为public方法,否则在主类中调用时会出错。
子类不能继承父类的构造函数,只能通过super调用父类的构造函数。
四、 问题与讨论
问题:
在父类和子类中都定义的printMayWay()方法,为什么子类的对像只调了用子类printMayWay()方法,而没有调用父类的printMayWay()方法呢?
讨论:
因为子类的的方法会覆盖父类的方法,所以子类的对象只会调用子类的printMayWay()方法二不是调用父类的printMayWay()方法。
昆明理工大学信息工程与自动化学院学生实验报告
( 2011—20##学年第一学期)
课程名称:java程序设计 开课实验室: 年 月 日
一、实验目的及内容
目的:掌握Java中接口的概念
内容:
1. 完成下面要求的程序
u 定义一个接口Shape,它含有一个抽象方法 int area( )
Public interface Shape{
{
Public abstract double area1();
System.out.println(area= width*height/2);
}
{
Public abstract double area2();
System.out.println(area= width*height);
}
}
u 定义一个表示三角形的类Triangle,该类实现接口Shape。此类中有两个分别用于存储三角形宽度和高度的private成员变量int width和int height,在该类实现的方法area中计算并返回三角形的面积。
Public class Triangle
{
Private int width;
Private int height;
Public double area()
{
Return Shape.area1(width,height);
}
Public static void main(String args[])
{
System.out.println(area )
}
}
u 定义一个表示矩形的类Rectangle,该类实现接口Shape。此类中有两个分别表示矩形长度和宽度的成员变量int width和int height,在该类实现的方法area中计算并返回矩形的面积。
Public class Rectangle
{
Private int width;
Private int height;
Public double area()
{
Return Shape.area2(width,height);
}
Public static void main(String args[])
{
System.out.println(area )
}
}
u 定义一个类ShapeTest,该类中有一个方法如下:
public static void showArea(Shape s){
System.out.println(“area=”+s.area());
}
在ShapeTest类中定义main函数,在main函数中创建Triang类的对象和Rectangle类的对象,并调用方法showArea两次以输出两个对象的面积。
u 思考:两次调用showArea方法时调用的area方法各是在哪个类中定义的方法?答:三角形调用showArea方法时调用的area方法是main函数中Triangle类中定义的方法,而矩形调用showArea方法时调用的area方法是main函数中Rectangle类中定义的方法
二、要求
给出实验内容1的程序设计、实现和结果,并对结果进行分析。
通过利用接口求解三角形和矩形的面积,使我大致掌握了接口的意义和作用,可以被多个类实现,在该程序中,接口Shpape中含有抽象方法area,类Triangle和类Rectangle共同调用了接口Shape中的抽象方法area,来求解不同形状的面积,接口还提供方法声明与方法相分离的机制,使实现接口的多个类表现出共同的行为能力,接口中声明的抽象方法在实现接口的多个类中表现出多态性。
姓名教师评定实验题目继承与接口一实验目的与要求实验目的1掌握类的继承关系2掌握接口的定义与使用实验要求按下列要求编写Java程序1…
广东工业大学实验报告学院专业班学号姓名成绩评定实验5题目继承与接口实验课程名称Java与面向对象程序设计一实验目的1学习类的继承子…
JAVA课程标准实验报告学号1040501211姓名陈嘉生江苏科技大学计算机科学与工程学院基础部1实验一流程控制语句一实验目的12…
成绩面向对象原理与Java实践课程实验报告实验2继承与接口姓名班级学号实验地点实验时间指导教师一实验目的掌握类的继承机制掌握成员变…
学生实验报告册(理工类)课程名称:JAVA程序设计实验专业班级:M11计算机科学与技术II学生学号:学生姓名:所属院部:XX学院指…
北京联合大学信息学院“面向对象程序设计”课程上机实验报告题目:JAVA上机实验心得体会姓名(学号):专业:计算机科学与技术编制时间…
Homework3实验报告一实验目的与要求1掌握Java中类和接口的基本知识2继承的基本知识3集合的基本操作二实验内容1PIMCo…
浙江理工大学Java程序设计实验报告20xx20xx学年第二学期学院班级姓名学号任课教师信息学院11数字媒体技术2周咪咪20xx3…
JAVE实验报告学号姓名班级指导教师129074401李阳网124柯栋梁安徽工业大学计算机学院20xx年1月实验一利用JAVA反射…
Java课程设计报告学号姓名班级指导教师129074068叶玉虎计122班柯栋梁安徽工业大学计算机学院20xx年12月实验一利用J…