定义一个名为Square类表示正方形,使其继承Shape抽象类,覆盖Shape类中的抽象方法getPerimeter( )和getArea( )。编写程序测试Square类的使用。
时间: 2024-10-26 11:16:33 浏览: 70
首先,我们定义一个名为`Shape`的抽象类,它包含一个抽象方法`getPerimeter()`和`getArea()`,这两个方法用于计算图形的周长和面积。然后,创建一个名为`Square`的具体类,它是`Shape`类的子类,并重写这两个抽象方法。
```java
// Shape抽象类
abstract class Shape {
abstract double getPerimeter();
abstract double getArea();
}
// Square类继承Shape并覆盖抽象方法
class Square extends Shape {
private double side;
// 构造函数接收边长
public Square(double side) {
this.side = side;
}
// 覆盖getPerimeter()方法
@Override
public double getPerimeter() {
return 4 * side; // 正方形的周长等于四倍的边长
}
// 覆盖getArea()方法
@Override
public double getArea() {
return side * side; // 正方形的面积等于边长的平方
}
}
```
接下来,我们可以创建`Square`对象并测试它的功能:
```java
public class Main {
public static void main(String[] args) {
Square square = new Square(5); // 创建一个边长为5的正方形
// 测试getPerimeter()和getArea()
double perimeter = square.getPerimeter();
double area = square.getArea();
System.out.println("正方形的周长是:" + perimeter);
System.out.println("正方形的面积是:" + area);
// 验证多态性,通过Shape类型的引用调用方法
Shape genericSquare = square; // 将Square赋值给Shape类型的变量
double genericPerimeter = genericSquare.getPerimeter();
double genericArea = genericSquare.getArea();
System.out.println("通过Shape类型的引用计算的周长是:" + genericPerimeter);
System.out.println("通过Shape类型的引用计算的面积是:" + genericArea);
}
}
```
在这个例子中,我们展示了如何定义一个正方形类以及如何利用多态性使用这个类。
阅读全文