利用抽象类的思想完成本任务。创建一个图形抽象类Shape(作为本案例的父类)

任务1:抽象类的使用
任务要求
(1)利用抽象类的思想完成本任务。创建一个图形抽象类Shape(作为本案例的父类),里面定义一个公共的抽象方法a r e a,该方法不需要输入参数,返回值为double,它的作用是计算出图形的面积:
public double area();
(2)创建Shape类的三个子类:圆形类(Circle)、方形类(Square)和三角形类(Triangle),并在各自的类中实现area 方法的具体功能,如圆形类的area 方法实现求圆的面积;方形类的area 方法是求方形的面积;三角形类的area 方法是三角形的面积。为了实现上述功能,各个类必须要去自定义自己所需要的属性,如圆形需要半径、方形需要边长、三角形需要底和高,另外还需定义构造方法来进行初始化对象的属性。
(3)完成上述工作后,建立一个ShapeTest 类(创建时让系统自动生成main 方法),在main 方法中创建1 个圆形实例、1 个方形实例和1个三角形实例,分别调用一次该图形的area 方法,算出该图形的面积,并检验结果是否正确。

//第(1)题
public abstract class Shape {
abstract double area();
}
//第(2)题
//圆形类(Circle)

public class Circle extends Shape {
private final double PI=3.14;
private double radius;
Circle(){

}
Circle(double radius){
this.radius=radius;
}
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
public double area() {
return radius*radius*PI;
}

}
//方形类(Square)

public class Square extends Shape {
private double side;
public double getSide() {
return side;
}
public void setSide(double side) {
this.side = side;
}
Square(){

}
Square(double side){
this.side=side;
}
public double area() {
return side*side;
}

}
//三角形类

public class Triangle extends Shape {
private double di;
private double high;
Triangle(){

}
Triangle(double di,double high){
this.di=di;
this.high=high;
}
public double getDi() {
return di;
}
public void setDi(double di) {
this.di = di;
}
public double getHigh() {
return high;
}
public void setHigh(double high) {
this.high = high;
}
public double area() {
return di*high*1/2;
}

}
//ShapeTest 类

public class ShapeTest {
public static void main(String[] args) {
Circle c1=new Circle(5);//圆类有参初始化
Circle c2=new Circle();//圆类无参初始化
c2.setRadius(3);//初始化c2的半径
Square s1=new Square(3);//方形类有参初始化
Square s2=new Square();//方形类无参初始化
s2.setSide(5);//初始化s2的边长
Triangle t1=new Triangle(5,6);//三角类有参初始化
Triangle t2=new Triangle();//三角类无参初始化
t2.setDi(2);//初始化t2的底
t2.setHigh(6);//初始化t2的高
System.out.println("c1的面积:"+c1.area()+"\tc2的面积"+c2.area());
System.out.println("s1的面积:"+s1.area()+"\ts2的面积"+s2.area());
System.out.println("t1的面积:"+t1.area()+"\tt2的面积"+t2.area());
}

}
//打印结果
//c1的面积:78.5 c2的面积28.26
//s1的面积:9.0 s2的面积25.0
//t1的面积:15.0 t2的面积6.0

温馨提示:答案为网友推荐,仅供参考
相似回答