(理解继承)课本P181页第六大题第1小题定义一个名为Square的类表示正方形,使其继承Shape抽象类,覆盖抽象类方法 getPerimeter()和 getArea()。
时间: 2024-11-09 13:27:11 浏览: 26
在面向对象编程中,"继承"允许一个类(称为子类或派生类)从另一个已存在的类(称为父类或基类)获取属性和方法。对于这道题目,首先你需要创建一个名为`Square`的类,它会继承自抽象类`Shape`。因为题目要求覆盖`getPerimeter()`和`getArea()`这两个方法,这意味着这两个方法在`Shape`类中是声明为抽象的,即它们没有提供具体的实现,而是留给子类去完成。
下面是一个简单的示例,假设`Shape`类有如下的抽象方法:
```java
abstract class Shape {
abstract double getPerimeter();
abstract double getArea();
}
```
`Square`类的定义将会是这样的:
```java
public class Square extends Shape {
private double sideLength; // 正方形边长
public Square(double side) {
this.sideLength = side;
}
@Override
public double getPerimeter() {
return 4 * sideLength; // 实现了getPerimeter方法,返回边长的四倍
}
@Override
public double getArea() {
return sideLength * sideLength; // 实现了getArea方法,返回边长的平方
}
}
```
在这个例子中,`Square`类通过覆盖父类的抽象方法,提供了实际计算周长和面积的实现。当你创建`Square`对象并调用`getPerimeter()`或`getArea()`时,将使用这个类的具体方法,而不是`Shape`类中的默认抽象行为。
阅读全文