如果標題不正確,請原諒我,我認爲這個問題與「多態性」有關,但不想讓標題複雜化。在另一個類的構造函數中傳遞一個類類型?
我正在學習Java並遵循「Java:Learn to Program」,隨着我的進展,我正在應用這些知識並創建自己的場景以查看 如何應用「多態性」。如果有人能幫助我理解如何完成這項任務,我將不勝感激。我有三類:
- 摘要員工
- 經理(員工的子類)
- 餐廳
Employee類和管理類是非常直接的。我正在嘗試創建一家餐廳,每家餐廳都有一名經理。我的問題是:
我應該將「Manager」類型作爲「Restaurant」類的構造函數參數傳入,還是在構造函數中實例化「Manager」對象?
public abstract class Employee{
private String _empName;
private double _empSalary;
public Employee(string name, double salary){
_empName = name;
_empSalary = salary;
}
public void setEmpName(String name){
_empName = name;
}
public String getEmpName(){
return _empName;
}
public void setEmpSalary(double salary){
_empSalary = salary;
}
public double getEmpSalary(){
return _empSalary;
}
}//CLASS
public class Manager{
private double _yrsOfExp;
public Manager(String name, double salary, double experience){
super(name, salary);
_yrsOfExp = experience;
}
public void setManagerExperience(double years){
_yrsOfExp = years;
}
public double getManagerExperience(){
return _yrsOfExp;
}
}//CLASS
這是我需要幫助的地方,我用「MANAGER TYPE」聲明瞭構造函數。我應該用施工而不是 向施工人員傳遞「管理員類型」來聲明「施工人員」的實例嗎?
public class Restaurant{
private Manager _manager;
private String _location;
//CONSTRUCTOR 1
//SHOULD I PURSUE IT THIS WAY OR
public Restaurant(Manager manager, String location){
_manager = manager;
_location = location;
}
//CONSTRUCTOR 2
//SHOULD I DO IT THIS WAY?
public Restaurant(String name, double salary, double experience, String location){
super(name, salary, experience);
_location = location;
}
public String toString(){
String str = "";
return str;
}
}//CLASS
想想這樣,你的餐廳有經理或你的餐廳有名字,工資和經驗嗎? –
謝謝@keshlam。我傾向於我的第二個構造函數,並且我收集你的方法是第二個構造函數? – Combustion007
我建議根據您提供給我們的最小數據作爲第一選項。將經理視爲一個對象,而不是餐廳的屬性。 – keshlam