定义一个形状类Shape,提供计算周长getPerimeter()和面积getArea()的函数。 定义一个子类正方形类Square继承自Shape类,拥有边长属性,提供构造函数,能够计算周长getPerimeter()和面积getArea()。 定义一个子类长方形类Rectangle继承自Square类,拥有长、宽属性,提供构造函数,能够计算周长getPerimeter()和面积getArea()。 定义一个子类圆形类Circle继承自Shape,拥有半径属性,提供构造函数,能够计算周长getPerimeter()和面积getArea()。 设计一个show函数,对Shape类的变量,输出周长、面积。用java
时间: 2024-03-03 11:50:18 浏览: 132
Java:使用抽象类定义一个“形状类”,能够计算周长和面积。
好的,这是一个面向对象的编程题目,我来帮你解答。
首先,我们定义一个Shape类,包含两个方法getPerimeter()和getArea(),以及一个show()方法:
```java
public class Shape {
public double getPerimeter() {
return 0;
}
public double getArea() {
return 0;
}
public void show() {
System.out.println("周长:" + getPerimeter() + ",面积:" + getArea());
}
}
```
然后,我们定义一个Square类继承自Shape类,添加一个边长属性,实现getPerimeter()和getArea()方法:
```java
public class Square extends Shape {
private double side;
public Square(double side) {
this.side = side;
}
public double getPerimeter() {
return 4 * side;
}
public double getArea() {
return side * side;
}
}
```
接着,我们定义一个Rectangle类继承自Square类,添加长、宽属性,实现getPerimeter()和getArea()方法:
```java
public class Rectangle extends Square {
private double length;
private double width;
public Rectangle(double length, double width) {
super(length);
this.length = length;
this.width = width;
}
public double getPerimeter() {
return 2 * (length + width);
}
public double getArea() {
return length * width;
}
}
```
最后,我们定义一个Circle类继承自Shape类,添加半径属性,实现getPerimeter()和getArea()方法:
```java
public class Circle extends Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
public double getPerimeter() {
return 2 * Math.PI * radius;
}
public double getArea() {
return Math.PI * radius * radius;
}
}
```
现在,我们可以创建这些类的实例,并调用show()方法输出周长和面积了:
```java
public static void main(String[] args) {
Shape s1 = new Square(2);
Shape s2 = new Rectangle(3, 4);
Shape s3 = new Circle(1);
s1.show();
s2.show();
s3.show();
}
```
输出结果为:
```
周长:8.0,面积:4.0
周长:14.0,面积:12.0
周长:6.283185307179586,面积:3.141592653589793
```
这样,我们就完成了这道面向对象的编程题目。
阅读全文