实训10 抽象类
一、实验介绍:
编写应用程序,掌握抽象类的使用方法,能使用抽象类解决一些简单的问题。
二、实验目的:
1.掌握抽象类的使用方法。
三、实验环境:
1.Windows XP/7 操作系统
2.JDK+Eclipse
四、实验任务:
1.层次关系类的定义和使用。
五、实验原理及步骤:
1.根据给出的抽象父类Shape及类层次关系说明图(类层次图1),设计子类圆类Circle和子类圆柱体类Cylinder。定义类的无参数构造方法和有参数构造方法,覆盖父类方法满足子类要求,并按子类要求增加变量和相关方法。在各个类中增加main方法测试类,要求面积和体积的输出结果保留到小数点后两位。
类层次图1:
输出结果如下:
public class Circle extends Shape {
protected double radius;
public Circle() {
this(0,0,1);
}
public Circle(double x, double y, double radius) {
super(x,y);//调用父类构造方法
this.radius = radius;
}
public double area() {//实现父类抽象方法,求圆面积
return Math.PI * radius * radius;
}
public String toString() {//覆盖父类方法,满足子类要求
return "圆心:" + String()+"\t半径:" + this.radius;
}
public static void main(String[] args) {//测试Circle类
Circle c1=new Circle();
System.out.String()+"\t");
System.out.printf("圆面积:%.2f\n",c1.area());
Circle c2=new Circle(1,1,1.2);
System.out.String()+"\t");
System.out.printf("圆面积:%.2f\n",c2.area());
}
}
public class Cylinder extends Circle{
double height;
Cylinder(){
this(0,0,1,2);
}
Cylinder(double x,double y,double r,double height){
super(x,y,r);
this.height=height;
}
double volume() {
return height*area();
}
public String toString() {
String()+"\t圆柱体高:"+height;
}
public static void main(String[] args) {
Cylinder c1=new Cylinder();
Cylinder c2=new Cylinder(1,1,1.2,5);
System.out.String());
System.out.printf("\t底面面积:%.2f\t圆柱体积:%.2f\n",c1.area(),c1.volume());
System.out.String());
System.out.printf("\t底面面积:%.2f\t圆柱体积:%.2f\n",c2.area(),c2.volume());
}
}
public abstract class Shape {
protected double x,y;抽象类的使用
public Shape() {
this(0,0);
}
public Shape(double x, double y) {
this.x = x;
this.y = y;
}
public abstract double area();
public String toString(){
return "("+this.x + "," +this.y + ")";
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论