(1)设计形状类Shape ,包含成员方法 double getArea(),用来计算形状图形的面积。 (2)设计圆类 Circle,继承自Shape,增加数据成员double r,代表圆的半径;在
时间: 2024-11-11 15:30:25 浏览: 66
(1)在设计中,首先创建一个名为"Shape"的基本抽象类,它表示所有可以计算面积的形状。这个类有一个纯虚函数`getArea()`,用于返回形状的面积,因为它是抽象的,所以不能直接实例化。
```java
public abstract class Shape {
public abstract double getArea();
}
```
(2)接着,我们创建一个名为"Cirlce"的具体子类,它继承自Shape,并添加了一个数据成员`r`(半径),同时也实现了`getArea()`方法,根据圆的面积公式(π * r^2)来计算。
```java
public class Circle extends Shape {
private double r;
public Circle(double r) {
this.r = r;
}
@Override
public double getArea() {
return Math.PI * r * r;
}
}
```
在这个例子中,Circle类就是多态的一个应用,因为通过`Shape`类型的引用,我们可以操作任何Circle对象,而不会知道具体的细节,只需调用`getArea()`即可得到正确的面积值。
相关问题
(1)设计一个形状类Shape,包含一个getArea0方法,该方法不包含实际语句。JAVA
在Java中,你可以设计一个名为`Shape`的抽象类作为基础,用于所有形状共享的行为。抽象类通常含有抽象方法,即没有具体实现的公共方法,如下面的例子:
```java
// 形状抽象类Shape
public abstract class Shape {
// 抽象方法getArea(),表示获取面积的通用行为
public abstract double getArea();
// 可能包含一些通用的操作,如打印形状名称等
public void printName() {
System.out.println("这是一个形状");
}
}
// 具体的形状类,比如Circle、Rectangle,需要覆盖getArea方法并提供具体的实现
class Circle extends Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double getArea() {
return Math.PI * radius * radius;
}
}
class Rectangle extends Shape {
private double width, height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
@Override
public double getArea() {
return width * height;
}
}
```
在这个例子中,`getArea0` 方法已更改为 `getArea()`,它是一个抽象方法,每个具体形状类(如`Circle`和`Rectangle`)都需要提供其自身的实现。
编写一个完整的JAVA Application程序,包含接口Shape,Circle类和Square类,Test类,具体要求如下: 1)接口Shape:包含方法 double getArea():求一个形状的面积 double getPerimeter():求一个形状的周长 2)Circle类:具有以下属性和方法: 属性radius:double类型,表示圆的半径。 方法:Circle(double r):构造函数 toString(): 输出圆的相关信息(半径等)。 3)Square类:具有以下属性和方法: 属性length,width:均是double类型,表示长方形的长和宽。 方法:Square(double x,double y):构造函数 toString(): 输出长方形的相关信息(长 宽等) 4)Test类作为主类完成测试功能: 输出圆的周长和面积。 输出长方形的周长和面积 产生随机数决定生成形状的类型,偶数就生成一个Circle对象,奇数就生成一个Square对象,将生成的对象赋值给接口句柄,计算并输出该形状的周长和面积。
以下是完整的JAVA Application程序,包含接口Shape,Circle类和Square类,Test类:
Shape接口:
```java
public interface Shape {
double getArea();
double getPerimeter();
}
```
Circle类:
```java
public class Circle implements Shape {
private double radius;
public Circle(double r) {
this.radius = r;
}
public double getArea() {
return Math.PI * radius * radius;
}
public double getPerimeter() {
return 2 * Math.PI * radius;
}
public String toString() {
return "Circle with radius " + this.radius;
}
}
```
Square类:
```java
public class Square implements Shape {
private double length;
private double width;
public Square(double x, double y) {
this.length = x;
this.width = y;
}
public double getArea() {
return length * width;
}
public double getPerimeter() {
return 2 * (length + width);
}
public String toString() {
return "Square with length " + this.length + " and width " + this.width;
}
}
```
Test类:
```java
import java.util.Random;
public class Test {
public static void main(String[] args) {
Shape shape;
Random rand = new Random();
int num = rand.nextInt(10);
if (num % 2 == 0) {
shape = new Circle(5.0);
System.out.println(shape.toString());
System.out.println("Area: " + shape.getArea());
System.out.println("Perimeter: " + shape.getPerimeter());
} else {
shape = new Square(4.0, 5.0);
System.out.println(shape.toString());
System.out.println("Area: " + shape.getArea());
System.out.println("Perimeter: " + shape.getPerimeter());
}
}
}
```
这个程序会随机生成一个数字,如果这个数字是偶数,那么就创建一个Circle对象并计算它的面积和周长,否则就创建一个Square对象并计算它的面积和周长。最后输出结果。
阅读全文
相关推荐















