我很想知道在JAVA中实现以下现实场景。 让我们说,
现在在美好的一天,工程师获得晋升并成为经理人。 那么我们是否应该删除ENGINEER对象并为此提升的ENGINEER创建新的MANAGER对象? 或者什么是在java中实现它的最佳方式?
答案 0 :(得分:0)
我想你回答了自己的问题。由于没有两个类是相同的,因此如果要将实体从一个表单更改为另一个表单(从工程师到管理器),则必须删除一个对象并创建另一个对象。请考虑以下示例以获取详细信息 让员工成为界面。 Engineer和Manager类实现Employee。
interface Employee
{
void attendsMeeting();
void reportsWorkDone();
void inputsHoursWorked();
}
class Manager implements Employee
{
String name;
int emp_id; //and more fields related to Manager
public void attendsMeeting()
{
//Implements the method
}
public void reportsWorkDone()
{
//Implements the method
}
public void inputsHoursWorked()
{
//Implements the method
}
public void managesThings()
{
//Method specific to Manager class
}
}
class Engineer implements Employee
{
String name;
int emp_id; //and more fields related to Engineer
public void attendsMeeting()
{
//Implements the method
}
public void reportsWorkDone()
{
//Implements the method
}
public void inputsHoursWorked()
{
//Implements the method
}
public void developsApplication()
{
//Method specific to Engineer class
}
}
从上面的代码中,您可以看到Engineer和Manager是两个不同的对象。他们实现了Employee,因此他们获得了一些从Employee继承的常用方法。此外,他们还获得了特定于两个子类的方法。即使两个类中的继承方法也没有相同的实现。因此,当这两个是不同的对象时,您必须删除Engineer对象并为特定的Employee(person)创建一个Manager对象(如果他被提升)。