这是一个设计抽象类Shape(图形),包含求面积和周长的area()方法和perimeter()方法,并利用Java多态技术设计了其子类Circle(圆形)类和Rectangle(矩形)类,设计了一个面向抽象类的抽象对象类。
时间: 2024-05-16 19:16:15 浏览: 28
下面是一个可能的实现:
```java
// Shape.java
public abstract class Shape {
public abstract double area();
public abstract double perimeter();
}
// Circle.java
public class Circle extends Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double area() {
return Math.PI * radius * radius;
}
@Override
public double perimeter() {
return 2 * Math.PI * radius;
}
}
// Rectangle.java
public class Rectangle extends Shape {
private double width;
private double height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
@Override
public double area() {
return width * height;
}
@Override
public double perimeter() {
return 2 * (width + height);
}
}
// AbstractObject.java
public class AbstractObject {
private Shape shape;
public AbstractObject(Shape shape) {
this.shape = shape;
}
public double getArea() {
return shape.area();
}
public double getPerimeter() {
return shape.perimeter();
}
}
```
这里定义了抽象类`Shape`作为图形的抽象概念,包含求面积和周长的方法。`Circle`和`Rectangle`分别继承自`Shape`,实现其抽象方法,具体描述了圆形和矩形的特征。`AbstractObject`作为一个面向抽象类的抽象对象类,包含一个`Shape`类型的成员变量,并提供获取其面积和周长的方法。
通过这种方式,我们可以通过`Shape`的抽象概念来描述各种图形,而不需要直接使用具体的实现类。这样可以提高代码的灵活性和可扩展性,同时也符合面向对象编程的设计原则。