package calculate;
abstract class Figure {
public String getName() {
return this.getClass().getSimpleName();
}
public abstract double getArea();
}
class Circle extends Figure{
private double radius;
public Circle(double radius) {
this.radius=radius;
}
@Override
public double getArea() {
return Math.PI*Math.pow(radius, 2);
}
}
class Rectangle extends Figure{
private double length;
private double width;
public Rectangle(double length,double width) {
this.length=length;
this.width=width;
}
@Override
public double getArea() {
return length*width;
}
}
class Squqre extends Rectangle{
private double length;
public Squqre(double length) {
this.length=length;
}
@Override
public double getArea() {
return length*length;
}
}
class Test {
public static void main(String[] args) {
Circle circle=new Circle(1);
System.out.println("图形的名称是:"+circle.getName());
System.out.println("图形的面积是:"+(int)circle.getArea());
Rectangle rectangle=new Rectangle(1,1);
System.out.println("图形的名称是:"+rectangle.getName());
System.out.println("图形的面积是:"+rectangle.getArea());
Squqre squqre=new Squqre(1,1);
System.out.println("图形的名称是:"+squqre.getName());
System.out.println("图形的面积是:"+squqre.getArea());
}
}
squqre既然从rectangle继承,它的构造函数要么和rectangle一样,要么用super调用基类构造函数。
另外,是square,英文真差