我已经声明了一个存储Square类型对象的数组,如下所示:
Square[][] square_array = new Square[15][15];
我还有一个名为Ball的课程。
是否可以在square_array中存储Ball对象?如果是这样,我将如何做到这一点?
干杯
答案 0 :(得分:0)
也许制作一个对象类,并使用方形和球来扩展它,而不是你可以创建一个可以包含两者的对象数组......虽然继承接缝是老式的...
Sq sq = new Sq();
Ba ba = new Ba();
Ob[] sqAndBa = new Ob[2];
void setup() {
sqAndBa[0] = sq;
sqAndBa[1] = ba;
println(sqAndBa);
}
class Ob {
}
class Sq extends Ob {
String toString() {
return("I'm a square");
}
}
class Ba extends Ob {
String toString() {
return("I'm a ball");
}
}
答案 1 :(得分:0)
除了v.k.'s关于扩展通用对象类的答案(这使得从数组中迭代显示更容易)之外,您还可以考虑使用接受任意数量的不同类型对象的ArrayList:
Sq sq = new Sq();
Ba ba = new Ba();
ArrayList sqAndBa = new ArrayList();
void setup() {
sqAndBa.add(sq);
sqAndBa.add(ba);
void draw() {
// now iterate through your ArrayList and display your objects:
for (int i = 0; sqAndBa.size(); i++) {
Ob ob = (Ob) sqAndBa.get(i);
ob.display();
class Ob {
// construction and display methods common to both
}
class Sq extends Ob {
// construction or display methods particular to squares
return sq;
}
class Ba extends Ob {
// construction and display methods particular to circles
return ba;
}