我有一个类工作人员,我想访问方法从蜂巢,花园和超类花的所有子类。一名工作人员正在花园里的蜂房里进行阵列表演,花园里还有一个阵列式的鲜花。我曾访问过使用构造从蜂巢方法:访问另一个类的方法
public worker(Hive hive){
this.hive= hive
}
我想从花园访问方法findFlower()来得到一个花和extractPollen()(其中每种类型的花从超类继承花)从我得到的花朵从他们花粉。我是否需要为花园和每种花卉制造更多的施工人员,还是需要2名施工人员,1名花园工作人员和1名超级施工人员花卉工作人员?
我迄今为止代码:
public class Worker extends Bee {
Hive hive = null;
public Garden garden;
public Flower flower;
public Worker(Hive hive){
this.hive=hive;
this.type = 2;
this.age=11;
this.health=3;
}
public Bee anotherDay(){
flower= garden.findFlower();
flower.extractPollen(int);
eat();
age++;
}
}
public class Garden{
ArrayList<Flower> flowerbed = new ArrayList<Flower>();
public Flower findFlower(){
//code which returns a random flower from my arraylist
}
}
public class Flower{
public boolean extractPollen(int po){
if(po <= pollen){
pollen= pollen - po;
return true;
}return false;
}
}
我应该把我的问题放在一些代码省略。另一天的方法需要返回一只蜜蜂,因为在一段时间之后,工人会变成另一种蜜蜂。构造函数也必须是“public Worker(Hive hive)”,因为超类具有该构造函数,并且所述超类中的大多数其他子类都需要Hive配置单元构造函数,并且根本不需要该花园。 anotherDay方法也是继承的,其他具有它的子类将花园作为参数是没有意义的!感谢迄今为止的帮助 – user2973447
hmm ..关于anotherDay()返回蜜蜂。如果该方法位于Bee的一个实例上,则返回值只能是“this”或另一个Bee实例。我知道你已经得到了这个代码,但它不是一个很好的设计。呼叫者应该知道一个新的蜜蜂可能会被退回,并停止呼叫已经拥有的蜜蜂参考。 – slipperyseal
你可以用Hive调用super构造函数。我将编辑我的代码.... – slipperyseal