实验五 继承与多态

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验五继承与多态

专业班级学号姓名

实验学时 2 实验类型验证性实验地点数计学院实验中心实验时间指导老师

实验成绩

年月日一、实验目的:

理解继承与多态的概念,掌握三种访问控制的区别,掌握抽象类、接口与包的应用。

二、实验内容:

1. 参考教材P124,示例程序C5_17,掌握抽象类的应用。

2. 参考教材P128,示例程序C5_18,掌握接口的使用方法。

3. 参考教材P133,示例程序C5_20,掌握包的使用方法。

三、实验要求:

1.完成示例程序的验证。

2.写出实验报告。

四、实验步骤与结果:(由学生按照实验内容完成)

程序一

package ch01;

import java.applet.Applet;

import java.awt.Graphics;

abstract class Shapes //定义一个抽象类Shapes

{

public int x,y; //x、y为画图的坐标

public int width,height;

public Shapes(int x,int y,int width,int height)

{ this.x=x;

this.y=y;

this.width=width;

this.height=height;

}

abstract double getArea( ); //求图形面积的抽象方法

abstract double getPerimeter( ); //求图形周长的抽象方法

}

class Square extends Shapes //由抽象类Shapes派生的子类——矩形类

{

@Override

public double getArea( ){return(width*height);}

@Override

public double getPerimeter( ){return(2*width+2*height);}

public Square(int x,int y,int width,int height)

{ super(x,y,width,height); }

}

class Triangle extends Shapes //由抽象类Shapes派生的子类——三角形类{

public double c; //斜边

@Override

public double getArea( ){return(0.5*width*height);}

@Override

public double getPerimeter( ){return(width+height+c);}

public Triangle(int x,int y,int base,int height)

{

super(x,y,base,height);

c=Math.sqrt(width*width+height*height);

}

}

class Circle extends Shapes //由抽象类Shapes派生的子类——圆类

{

public double r; //半径

@Override

public double getArea( ){return(r*r*Math.PI);}

@Override

public double getPerimeter( ){return(2*Math.PI*r);}

public Circle(int x,int y,int width,int height)

{

super(x,y,width,height);

r=(double)width/2.0;

}

}

public class Ch01 extends Applet

{

Square Box=new Square(5,15,25,25);

Triangle tri=new Triangle(5,50,8,4);

Circle Oval=new Circle(5,90,25,25);

@Override

public void paint(Graphics g)

{

//画正方形

g.drawRect(Box.x,Box.y,Box.width,Box.height);

g.drawString("Box Area:"+Box.getArea( ),50,35);

g.drawString("Box Perimeter:"+Box.getPerimeter( ),50,55);

g.drawString("tri Area:"+tri.getArea( ),50,75);

g.drawString("tri Perimeter:"+tri.getPerimeter( ),50,95);

g.drawOval(Oval.x,Oval.y,Oval.width,Oval.height); //画圆

g.drawString("oval Area:"+Oval.getArea( ),50,115);

}

}

程序二

package ch02;

import java.applet.Applet;

import java.awt.Graphics;

interface Shapes //定义一个接口

{

abstract double getArea( ); //自动被定义为public

double getPerimeter( );

}

class Square implements Shapes //类要实现接口

{

public int x,y;

public int width,height;

@Override

public double getArea( ){return(width*height);}

@Override

public double getPerimeter( ){return(2*width+2*height);} public Square(int x,int y,int width,int height)

{

this.x=x;

this.y=y;

this.width=width;

this.height=height;

}

}

class Triangle implements Shapes //类要实现接口

{

public int x,y;

public int width,height;

public double c;

@Override

public double getArea( ){return(0.5*width*height);}

@Override

public double getPerimeter( ){return(width+height+c);} public Triangle(int x,int y,int base,int height)

{

this.x=x;

this.y=y;

width=base;

this.height=height;

c=Math.sqrt(width*width+height*height);

}

}

相关文档
最新文档