抽象类shape包含类型颜色属性衍生出circle类,输入类型颜色半径输出类型颜色半径周长面积
时间: 2024-11-09 22:18:08 浏览: 12
在面向对象的设计中,抽象类`Shape`是一种为了表示一类具有共同特性的对象而创建的蓝图。它通常包含一些通用属性,如颜色(color),但可能还有一些抽象方法,表示这些形状的基本操作。例如:
```java
abstract class Shape {
private String color;
public Shape(String color) {
this.color = color;
}
// 抽象方法,子类需要实现
public abstract double getPerimeter();
public abstract double getArea();
// 获取颜色的方法
public String getColor() {
return color;
}
}
```
现在我们想要衍生出一个具体的圆形类`Circle`,它将继承`Shape`,并且有自己的特性——半径(radius)。所以`Circle` 类将添加对半径的支持,并重写`getPerimeter()` 和 `getArea()` 方法:
```java
class Circle extends Shape {
private double radius;
public Circle(String color, double radius) {
super(color);
this.radius = radius;
}
@Override
public double getPerimeter() {
return 2 * Math.PI * radius;
}
@Override
public double getArea() {
return Math.PI * Math.pow(radius, 2);
}
// 如果需要,还可以添加获取或设置半径的方法
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
}
```
当你实例化一个`Circle`对象并传递颜色和半径时,你可以通过这个对象调用上述方法来获取颜色、周长、和面积。这就是多态的应用,尽管你使用的是一般的`Shape`引用,但实际的行为取决于具体的`Circle`对象。
阅读全文