定义一个形状抽象类,包含求周长和面积的方法,私有化成员变量(Name, Color) 再定义圆类和正方形类的继承形状类,实现求周长和面积的方法。
时间: 2024-12-24 08:29:14 浏览: 11
首先,我们创建一个名为`Shape`的抽象类,它定义了一个基本形状的属性和通用的操作。这个抽象类有两个私有成员变量`name`和`color`,以及两个抽象方法`getPerimeter()`和`getArea()`,因为它们的具体计算需要各个子类去实现。
```java
abstract class Shape {
private String name;
private String color;
// 构造函数
public Shape(String name, String color) {
this.name = name;
this.color = color;
}
// 抽象方法:获取周长
abstract double getPerimeter();
// 抽象方法:获取面积
abstract double getArea();
// 提供getter方法访问私有变量
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
double getPerimeter() {
return 2 * Math.PI * radius;
}
@Override
double getArea() {
return Math.PI * radius * radius;
}
}
class Square extends Shape {
private double sideLength;
public Square(String name, String color, double sideLength) {
super(name, color);
this.sideLength = sideLength;
}
@Override
double getPerimeter() {
return 4 * sideLength;
}
@Override
double getArea() {
return sideLength * sideLength;
}
}
```
现在,你可以使用这些类实例化圆和正方形,并通过它们的父类引用调用公共方法来获取周长和面积,这就是多态的应用。
阅读全文