内容发布更新时间 : 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 { }