Java:使用抽象类定义一个“形状类”,能够计算周长和面积。
时间: 2024-09-29 11:02:49 浏览: 25
在Java中,你可以使用抽象类来定义一个模板或者基础类,比如创建一个名为"Shape"的抽象类,代表所有有周长和面积属性的形状。抽象类通常包含抽象方法,也就是没有具体实现的方法,例如`calculatePerimeter()`和`calculateArea()`。下面是一个简单的例子:
```java
abstract class Shape {
protected double sideLength; // 具体形状的共同属性
public Shape(double sideLength) {
this.sideLength = sideLength;
}
// 抽象方法,每个具体的形状需要覆盖这两个方法
abstract double calculatePerimeter();
abstract double calculateArea();
// 共享的行为
public void printInfo() {
System.out.println("Shape with side length: " + sideLength);
}
}
// 实例化具体的形状,如Rectangle和Circle
class Rectangle extends Shape {
public Rectangle(double width, double height) {
super(width * height); // 假设矩形的面积等于边长乘积
}
@Override
double calculatePerimeter() {
return 2 * (width + height);
}
@Override
double calculateArea() {
return width * height;
}
}
class Circle extends Shape {
public Circle(double radius) {
super(radius * radius * Math.PI); // 假设圆的面积等于半径的平方乘以π
}
@Override
double calculatePerimeter() {
return 2 * Math.PI * radius;
}
@Override
double calculateArea() {
return Math.PI * radius * radius;
}
}
```
在这个例子中,`Rectangle`和`Circle`类继承了`Shape`,并实现了`calculatePerimeter()`和`calculateArea()`方法。这样,无论处理何种形状,只要调用`printInfo()`和获取周长和面积,都可以通过`Shape`类型的引用进行操作。
阅读全文