设计一个Shape接口和它的两个实现类Square和Circle。要求如下: 1)Shape接口中有一个抽象方法area(),方法接收有一个double类型的参数,返回一个double类型的结果。 2)Square和Circle中实现了Shape接口的area()抽象方法,分别求正方形和圆形的面积并返回。 3)在测试类中创建Square和Circle对象,计算边长为2的正方形面积和半径为3的圆形面积。 2. 多态练习: 1)上题中,利用多态特性,使用Shape接口类型 的变量s1和s2,分别引用类Square和类Circle的对象,调用area()方法,可求出不同形状的面积(计算边长为2的正方形面积和半径为3的圆形面积),即运行得到不同的结果
时间: 2024-03-03 18:49:24 浏览: 68
好的,以下是对您的问题的回答:
首先,这是一个非常好的面向对象编程的练习题目,让我来为您解答。
1. Shape接口以及Square和Circle类的实现
下面是Shape接口和Square,Circle两个实现类的代码:
```java
// 定义Shape接口
public interface Shape {
double area(double value);
}
// 定义Square类实现Shape接口
public class Square implements Shape {
public double area(double value) {
return value * value;
}
}
// 定义Circle类实现Shape接口
public class Circle implements Shape {
public double area(double value) {
return Math.PI * value * value;
}
}
```
在上面的代码中,我们定义了一个Shape接口,并在接口中定义了一个抽象方法area(),这个方法接收一个double类型的参数,返回一个double类型的结果。
接下来我们定义了两个实现类Square和Circle,它们都实现了Shape接口,并重写了area()方法,求解正方形和圆形的面积并返回。
2. 测试类中计算正方形和圆形面积
下面是测试类的代码:
```java
public class Test {
public static void main(String[] args) {
Square square = new Square();
Circle circle = new Circle();
double squareArea = square.area(2.0);
double circleArea = circle.area(3.0);
System.out.println("正方形的面积为:" + squareArea);
System.out.println("圆形的面积为:" + circleArea);
}
}
```
在上面的代码中,我们首先创建了Square和Circle对象,并分别调用了它们的area()方法,计算出边长为2的正方形和半径为3的圆形的面积,并将结果打印出来。
3. 多态练习
下面是使用多态特性的代码:
```java
public class Test {
public static void main(String[] args) {
Shape s1 = new Square();
Shape s2 = new Circle();
double squareArea = s1.area(2.0);
double circleArea = s2.area(3.0);
System.out.println("正方形的面积为:" + squareArea);
System.out.println("圆形的面积为:" + circleArea);
}
}
```
在上面的代码中,我们定义了Shape类型的变量s1和s2,分别引用Square和Circle的对象。然后我们通过这两个变量调用area()方法,计算出边长为2的正方形和半径为3的圆形的面积,并将结果打印出来。
这里的关键点是,我们使用了多态特性,即通过Shape类型的变量来引用不同的实现类的对象,从而实现了对不同形状的面积进行计算。这就是面向对象编程中的多态性,能够让我们更加灵活地编写代码。
阅读全文