【发布时间】:2014-03-13 02:49:21
【问题描述】:
如果标题不正确,请原谅我,我认为这个问题与“多态性”有关,但不想使标题复杂化。
我正在学习 Java 并遵循“Java:学习编程”,随着我的学习,我正在应用知识并创建自己的场景来查看 如何应用“多态性”。如果有人可以帮助我了解如何执行此任务,我将不胜感激。我有三个班级:
- 抽象员工
- 经理(员工子类)
- 餐厅
Employee 类和 Manager 类非常简单。我正在尝试创建一家餐厅,每家餐厅都有一位经理。我的问题是:
我应该将“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
【问题讨论】:
标签: java polymorphism