1.求解用java写(如三角形,矩型,圆)的的周长,面积,要求用到继承,多态,抽象类,接口,内部类等。

1个回答

  • //抽象的形状类

    public abstract class Shape{ }

    //接口

    public interface IDisplay{

    void display(); //显示图形的基本信息

    double getArea(); //计算面积

    double getGirth(); //计算周长

    }

    //三角形类

    public class Triangle extends Shape implements IDisplay{

    protected double a;

    protected double b;

    protected double c;

    public Triangle(double a, double b, double c){

    this.a = a; this.b = b; this.c = c;

    }

    @Override public double getArea() {

    double s = (a + b + c) / 2;

    return Math.sqrt(s*(s-a)*(s-b)*(s-c));

    }

    @Override public double getGirth() {

    return this.a + this.b + this.c;

    }

    @Override public void display() {

    System.out.println("三角形");

    System.out.println("边长:" + a + ", " + b + ", " + c);

    }

    }

    //矩形类

    public class Rectangle extends Shape implements IDisplay {

    protected double width; protected double height;

    public Rectangle(double width, double height){

    this.width = width;

    this.height = height;

    }

    @Override public double getArea() {

    return this.width * this.height;

    }

    @Override public double getGirth() {

    return 2 * ( this.width + this.height);

    }

    @Override public void display() {

    System.out.println("矩形");

    System.out.println("宽:" + this.width + ", 高:" + this.height);

    }

    }

    //圆类

    public class Circle extends Shape implements IDisplay {

    protected double radius;

    public Circle(double radius){

    this.radius = radius;

    }

    @Override public double getArea() {

    return Math.PI * this.radius * this.radius;

    }

    @Override public double getGirth() {

    return 2 * Math.PI * this.radius;

    }

    @Override public void display() {

    System.out.println("圆");

    System.out.println("半径:" + this.radius);

    }

    }