定义一个数组,它可以存储一个矩形、一个圆、一个双精度数或一个整数。
时间: 2024-11-09 12:27:51 浏览: 16
矩阵_C语言_castle4zf_一个数的转置_
在Java中,你可以使用泛型(Generics)来创建一个可以存储不同类型对象的数组。这里,我们可以定义一个数组模板,这个模板可以接受任意类型的对象,只要这些对象实现了某个共同接口或继承了某个基类。
首先,假设我们有一个抽象类Shape,它代表了所有形状(矩形、圆等),或者有一个接口Number,代表数字(双精度数和整数)。然后,我们可以创建一个泛型数组来存储这些对象:
```java
import java.lang.Number;
// 假设Shape接口/抽象类在这里
interface Shape {
// 具体的方法声明...
}
class Rectangle implements Shape {
// 矩形的具体实现...
}
class Circle implements Shape {
// 圆的具体实现...
}
// 或者如果Number接口表示双精度数和整数
interface Number extends Comparable<Number> {
// 数字类型的方法声明...
}
class DoublePrecisionNumber implements Number {
// 双精度数具体实现...
}
class Integer implements Number {
// 整数具体实现...
}
// 泛型数组定义
public class ArrayWithShapesNumbers<T extends Shape | Number> {
private T[] elements;
public ArrayWithShapesNumbers(int size) {
this.elements = (T[]) new Object[size];
}
public void add(T item) {
if (elements.length == elements.length) {
growArray();
}
elements[elements.length - 1] = item;
}
private void growArray() {
// 扩展数组大小...
}
// 其他操作...
}
```
在这个例子中,`ArrayWithShapesNumbers`类的实例可以存储任何实现了`Shape`接口或`Number`接口的对象。当你添加元素时,确保传入的是正确的类型。
阅读全文