跟进earlier SO question,现在我想将Fruit
收集到一个篮子中,但知道子类型的出路。如何维护Chapel数组中的对象的子类型
class Banana : Fruit {
var color: string;
}
class Apple: Fruit {
var poison: bool;
}
class Fruit {
}
var a = new Apple(poison=true);
var b = new Banana(color="green");
if (a.type == Apple) {
writeln("Go away doctor!");
}
var basketDom = {1..1};
var basket: [basketDom] Fruit;
basket.push_back(a);
basket.push_back(b);
for b in basket {
writeln(b.type:string);
}
这将打印超类型Fruit
。我如何从这个篮子中获得Apples
和Bananas
?
我不知道小教堂,但看起来像a和b在进入篮子之前正在投给水果。你似乎想要更多的东西,而不是继承Fruit。 –