定义一个形状类Shape,提供计算周长getPerimeter()和面积getArea()的函数
定义一个子类正方形类Square继承自Shape类,拥有边长属性,提供构造函数,能够计算周长getPerimeter()和面积getArea()
定义一个子类长方形类Rectangle继承自Square类,拥有长、宽属性,提供构造函数,能够计算周长getPerimeter()和面积getArea()
定义一个子类圆形类Circle继承自Shape,拥有半径属性,提供构造函数,能够计算周长getPerimeter()和面积getArea()
在main函数中,分别构造三个Shape类的变量,分别指向一个Square、Rectangle、Circle对象,并输出他们的周长、面积.
输入格式:
正方形类的边长
长方形类的长宽
圆类的半径
输出格式:
正方形的周长、面积
长方形的周长、面积
圆形的周长、面积
输入样例:
在这里给出一组输入。例如:
1
1 2
2
输出样例:
在这里给出相应的输出。例如:
4.00 1.00
6.00 2.00
12.57 12.57
import java.util.Scanner;
class Shape{
public double getPerimeter() {
return 1;
}
public double getArea() {
return 1;
}
}
class Square extends Shape{
private double length;
public Square() {
}
public Square(double length) {
this.length=length;
}
public double getPerimeter() {
return 4.0*length;
}
public double getArea() {
return length*length;
}
}
class Rectangle extends Square{
private double length;
double width;
public Rectangle() {
}
public Rectangle(double length,double width) {
this.length=length;
this.width=width;
}
public double getPerimeter() {
return 2.0*(length+width);
}
public double getArea() {
return length*width;
}
}
class Circle extends Shape{
double radius;
public Circle() {
}
public Circle(double radius) {
this.radius=radius;
}
public double getPerimeter() {
return 2.0*Math.PI*radius;
}
public double getArea() {
return Math.PI*radius*radius;
}
}
public class Main{
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
Shape p1=new Square(scan.nextDouble());
Shape p2=new Rectangle(scan.nextDouble(),scan.nextDouble());
Shape p3=new Circle(scan.nextDouble());
System.out.printf("%.2f %.2f\n",p1.getPerimeter(),p1.getArea());
System.out.printf("%.2f %.2f\n",p2.getPerimeter(),p2.getArea());
System.out.printf("%.2f %.2f\n",p3.getPerimeter(),p3.getArea());
}
}