Java求长方形和圆形的面积周长运用到继承和接口和抽象类
时间: 2024-10-10 20:15:34 浏览: 38
Java:使用抽象类定义一个“形状类”,能够计算周长和面积。
在Java中,计算长方形和圆形的面积和周长通常不会直接涉及到继承、接口或抽象类的概念,因为它们是设计模式的一部分,更多用于解决更复杂的软件结构问题,而不是基础数学运算。
不过,如果我们想要演示如何通过继承和接口来组织这个功能:
1. **继承**:我们可以创建一个名为`Shape`的抽象基类,其中包含面积(`getArea()`)和周长(`getCircumference()`)这两个抽象方法。然后,可以分别创建`Rectangle`和`Circle`两个子类,它们都继承自`Shape`并实现这两个方法。例如:
```java
abstract class Shape {
abstract double getArea();
abstract double getCircumference();
}
class Rectangle extends Shape {
private double width, height;
public Rectangle(double width, double height) { this.width = width; this.height = height; }
@Override
double getArea() { return width * height; }
@Override
double getCircumference() { return 2 * (width + height); }
}
class Circle extends Shape {
private double radius;
public Circle(double radius) { this.radius = radius; }
@Override
double getArea() { return Math.PI * Math.pow(radius, 2); }
@Override
double getCircumference() { return 2 * Math.PI * radius; }
}
```
2. **接口**:如果不想使用继承,也可以定义一个`Shape`接口,包含`getArea()`和`getCircumference()`方法,让`Rectangle`和`Circle`类实现这个接口。但是Java中接口不像其他语言那样支持默认方法,所以需要每个实现类提供完整的方法体。
3. **抽象类与接口结合**:还可以选择同时使用抽象类和接口,`Shape`作为抽象类,同时定义接口。这种方式结合了两者的优势,允许共享一部分常见行为(如面积和周长),同时提供灵活性。
至于何时用继承,何时用接口取决于需求。继承适合表示有共同属性和部分相同行为的对象之间的关系;接口则适用于只关心行为而无需共享状态的情况。
阅读全文