java定义一个抽象Shape类,包含私有属性name,两个构造方法public Shape()、 public Shape(String name),name的setter和getter方法以及两个抽象方法double getPerimeter()和 double getArea()定义一个名为 Square 的类表示正方形,使其继承 Shape 抽象类,覆盖 Shape 类中的抽象方法 getPerimeter()和 getArea()。编写程序从键盘输入数据测试 Square 类的使用。
时间: 2023-06-10 16:03:57 浏览: 108
好的,请等待一下,我需要准备一下代码。以下是代码实现。请注意,此代码为示例代码,仅供参考。
```java
import java.util.Scanner;
abstract class Shape {
private String name;
public Shape() {
this.name = "unknown";
}
public Shape(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
abstract double getPerimeter();
abstract double getArea();
}
class Square extends Shape {
private double sideLength;
public Square(double sideLength) {
this.sideLength = sideLength;
super.setName("Square");
}
public double getSideLength() {
return sideLength;
}
public void setSideLength(double sideLength) {
this.sideLength = sideLength;
}
@Override
double getPerimeter() {
return sideLength * 4;
}
@Override
double getArea() {
return sideLength * sideLength;
}
}
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入正方形的边长:");
double sideLength = scanner.nextDouble();
Square square = new Square(sideLength);
System.out.println("正方形的名称为:" + square.getName());
System.out.println("正方形的周长为:" + square.getPerimeter());
System.out.println("正方形的面积为:" + square.getArea());
}
}
```
在这个代码中,我们定义了一个抽象类 `Shape`,其包含了属性 `name`,构造方法 `Shape()` 和 `Shape(String name)`,以及方法 `getName()` 和 `setName()`。此外,`Shape` 类中还有两个抽象方法 `getPerimeter()` 和 `getArea()`。
我们还定义了一个类 `Square`,继承自 `Shape` 抽象类。`Square` 类中包含属性 `sideLength`,构造方法 `Square(double sideLength)`,方法 `getSideLength()` 和 `setSideLength()`。此外,`Square` 类还覆盖了 `Shape` 类中的抽象方法 `getPerimeter()` 和 `getArea()`,分别计算正方形的周长和面积。
最后,在主方法中,我们从标准输入中读取了正方形的边长,创建了一个 `Square` 类型的对象,并输出了其名称、周长和面积。
希望本代码可以帮助您解决问题。
阅读全文