我有一個類工作人員,我想訪問方法從蜂巢,花園和超類花的所有子類。一名工作人員正在花園裏的蜂房裏進行陣列表演,花園裏還有一個陣列式的鮮花。我曾訪問過使用構造從蜂巢方法:訪問另一個類的方法
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