1、利用继承的思想,创建图形、正方形、圆形、三角形 这些类,编写上转型程序并计算正方形、圆形和三角形的面积和周长。
时间: 2024-10-13 17:18:40 浏览: 2
在面向对象编程中,你可以使用继承和多态的概念来实现这个需求。首先,我们创建一个基础图形类`Shape`作为所有形状的父类,然后分别建立`Square`(正方形)、`Circle`(圆形)和`Triangle`(三角形)这三个具体的形状类,它们都继承自`Shape`。
```java
// 基础图形类 Shape
abstract class Shape {
abstract double getArea();
abstract double getPerimeter();
}
// 正方形类 Square
class Square extends Shape {
private double side;
public Square(double side) {
this.side = side;
}
@Override
double getArea() {
return side * side;
}
@Override
double getPerimeter() {
return 4 * side;
}
}
// 圆形类 Circle
class Circle extends Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
double getArea() {
return Math.PI * radius * radius;
}
@Override
double getPerimeter() {
return 2 * Math.PI * radius;
}
}
// 三角形类 Triangle
class Triangle extends Shape {
private double base, height;
public Triangle(double base, double height) {
this.base = base;
this.height = height;
}
@Override
double getArea() {
return 0.5 * base * height;
}
// 假设这里有一个计算周长的公式,例如对于等边三角形,可以简化为三倍的边长
// 由于题目未提供具体信息,这里仅保留getArea的实现
@Override
double getPerimeter() {
throw new UnsupportedOperationException("Perimeter calculation not implemented for Triangle");
}
}
```
在这个例子中,你可以通过`Shape`类型的引用来存储任意形状的对象,并调用`getArea()`和`getPerimeter()`方法,因为它们都是由继承的抽象方法提供的。这是多态性的体现,允许你统一处理不同类型的具体形状。