Java实验报告--继承与接口 下载本文

内容发布更新时间 : 2024/11/1 7:06:20星期一 下面是文章的全部内容请认真阅读。

学院 专业 班、学号 姓名 教师评定_________________

实验题目 继承与接口

一、 实验目的与要求

实验目的:

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(\矩形长为:\ System.out.println(\矩形宽为:\

System.out.println(\矩形面积为:\ System.out.println(\矩形周长为:\ } }

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(\正方形的边长为:\

System.out.println(\正方形面积为:\ System.out.println(\正方形周长为:\ System.out.println(\正方形对角线为:\ } }

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中接口和继承的相关知识,实现对矩形和正方形面积,周长等进行运算。并利用长宽为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 { }