[Java] Shape类抽象类 →→→→→进入此内容的聊天室

来自 , 2020-08-01, 写在 Java, 查看 187 次.
URL http://www.code666.cn/view/a941493e
  1. import java.util.Scanner;
  2. public class Main {
  3.         public static void main(String[] args) {
  4.                 Scanner scan = new Scanner(System.in);
  5.                 double length = scan.nextDouble();
  6.                 Shape s = new Square(length);
  7.                 System.out.printf("%.2f ", s.getPerimeter());
  8.                 System.out.printf("%.2f\n", s.getArea());
  9.  
  10.                 length = scan.nextDouble();
  11.                 double wide = scan.nextDouble();
  12.                 Shape r = new Rectangle(length, wide);
  13.                 System.out.printf("%.2f ", r.getPerimeter());
  14.                 System.out.printf("%.2f\n", r.getArea());
  15.  
  16.                 double radius = scan.nextDouble();
  17.                 Shape c = new Circle(radius);
  18.                 System.out.printf("%.2f ", c.getPerimeter());
  19.                 System.out.printf("%.2f\n", c.getArea());
  20.  
  21.                 scan.close();
  22.         }
  23. }
  24.  
  25. abstract class Shape {
  26.         private double length;
  27.         private double wide;
  28.         public Shape(double len) {
  29.                 length = len;
  30.         }
  31.         public Shape(double len, double wi) {
  32.                 length = len;
  33.                 wide = wi;
  34.         }
  35.         public double getLength() {
  36.                 return length;
  37.         }
  38.         public double getWide() {
  39.                 return wide;
  40.         }
  41.         public abstract double getPerimeter();
  42.         public abstract double getArea();
  43. }
  44.  
  45. class Square extends Shape {
  46.         public Square(double len) {
  47.                 super(len, len);
  48.         }
  49.         public Square(double len, double wi) {
  50.                 super(len, wi);
  51.         }
  52.         public double getLength() {
  53.                 return super.getLength();
  54.         }
  55.         public double getWide() {
  56.                 return super.getWide();
  57.         }
  58.         public double getPerimeter() {
  59.                 return 2*(super.getLength()+super.getWide());
  60.         }
  61.         public double getArea() {
  62.                 return super.getLength()*super.getWide();
  63.         }
  64. }
  65.  
  66. class Rectangle extends Square{
  67.     public Rectangle(double len, double wi) {
  68.         super(len, wi);
  69.     }
  70.     public double getPerimeter() {
  71.         return 2*(super.getLength()+super.getWide());
  72.     }
  73.     public double getArea() {
  74.         return super.getLength()*super.getWide();
  75.     }
  76. }
  77.  
  78. class Circle extends Shape{
  79.     public Circle(double len) {
  80.         super(len);
  81.     }
  82.     public double getPerimeter() {
  83.         return 2*3.14159*super.getLength();
  84.     }
  85.     public double getArea() {
  86.         return 3.14159*super.getLength()*super.getLength();
  87.     }
  88. }

回复 "Shape类抽象类"

这儿你可以回复上面这条便签

captcha