定义一个形状抽象类,包含求周长和面积的方法,私有化成员变量(Name,Color)。再定义圆类和正方形类的继承形状类,实现求周长和面积的方法
时间: 2024-12-24 09:28:16 浏览: 11
首先,我们可以定义一个名为`Shape`的抽象类,它作为所有形状的公共父类,包含两个抽象方法`getPerimeter()`(求周长)和`getArea()`(求面积),以及一些私有属性(名称和颜色):
```java
public abstract class Shape {
private String name;
private String color;
public Shape(String name, String color) {
this.name = name;
this.color = color;
}
// 抽象方法,需要子类实现
public abstract double getPerimeter();
public abstract double getArea();
// 提供访问器方法
public String getName() {
return name;
}
public String getColor() {
return color;
}
}
```
接下来,我们分别创建`Circle`和`Square`两个具体的子类,它们继承自`Shape`并实现了`getPerimeter()`和`getArea()`方法:
```java
class Circle extends Shape {
private double radius;
public Circle(String name, String color, double radius) {
super(name, color);
this.radius = radius;
}
@Override
public double getPerimeter() {
return 2 * Math.PI * radius;
}
@Override
public double getArea() {
return Math.PI * radius * radius;
}
}
class Square extends Shape {
private double side;
public Square(String name, String color, double side) {
super(name, color);
this.side = side;
}
@Override
public double getPerimeter() {
return 4 * side;
}
@Override
public double getArea() {
return side * side;
}
}
```
在这个设计中,`Circle`和`Square`可以根据各自的特点计算周长和面积。
阅读全文