Java接口实验报告

昆明理工大学信息工程与自动化学院学生实验报告

201120##学年学期

课程名称: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,来求解不同形状的面积,接口还提供方法声明与方法相分离的机制,使实现接口的多个类表现出共同的行为能力,接口中声明的抽象方法在实现接口的多个类中表现出多态性。

 

第二篇:Java实验报告--继承与接口

Java实验报告继承与接口

姓名 教师评定_________________

实验题目 继承与接口

一、 实验目的与要求

实验目的:

1、掌握类的继承关系。

2、掌握接口的定义与使用。

实验要求:

按下列要求编写Java程序:

1、定义接口Printx,其中包括一个方法printMyWay(),这个方法没有形参,返回值为空。

2、编写矩形类,矩形类要求实现Printx接口,有求面积、求周长的方法,printMyWay()方法要能显示矩形的边长、面积和周长。

3、编写正方形类作为矩形类的子类,正方形类继承了矩形类求面积和周长的方法,新增加求对角线长的方法,重写printMyWay()方法,要求该方法能显示正方形的边长、面积、周长和对角线长。

二、 实验方案

按照给定要求编写程序,代码如下:

interface Printx //定义接口Printx

{

void printMyWay();

}

class rectangle implements Printx //矩形类并实现Printx接口

{

double a,b,area,length;

rectangle(double a, double t b)

{

this.a=a;

this.b=b;

}

double getArea()

{

area=a*b;

return area;

}

double getLength()

{

length=(a+b)*2;

return length;

}

@Override

public void printMyWay() //实现接口Printx中的方法 {

System.out.println("矩形长为:"+a);

System.out.println("矩形宽为:"+b);

System.out.println("矩形面积为:"+getArea());

System.out.println("矩形周长为:"+getLength()); }

}

class square extends rectangle //正方形类继承矩形类 {

square(double a, double b)

{

super(a,b);

}

@Override

double getArea()

{

return super.getArea();

}

@Override

double getLength()

{

return super.getLength();

}

double diagonal() //求得正方形的对角线 {

return Math.sqrt(a*a+b*b);

}

@Override

public void printMyWay()

{

System.out.println("正方形的边长为:"+a);

System.out.println("正方形面积为:"+getArea());

System.out.println("正方形周长为:"+getLength());

System.out.println("正方形对角线为:"+diagonal());

}

}

public class Javahomework

{

public static void main(String[] args) {

rectangle R=new rectangle(5,9);

square S=new square(4,4);

R.printMyWay();

S.printMyWay();

}

}

三、 实验结果和数据处理

Java实验报告继承与接口

四、 结论

本实验通过java中接口和继承的相关知识,实现对矩形和正方形面积,周长等进行运算。并利用长宽为5和9的矩形,以及边长为4的正方形进行测试,测试结果与预测结果相同,则此程序符合解题要求。

五、 问题与讨论

接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?

1.接口可以继承接口..但是要使用extends~而不是用implements

如:interface a{}

interface b extends a{}

2.抽象类可以实现接口..

比如java.util中的AbstractCollection类就是实现的Collection接口

3.抽象类可以继承实体类

下面这段执行无误的代码说明的所有的问题:

interface MyInterface {

}

interface AnotherInterface extends MyInterface {

}

class EntityClass {

}

abstract class AbstractClass extends EntityClass implements MyInterface {

}

相关推荐