java中的继承概念有两个子类

时间:2014-12-14 08:14:24

标签: java oop inheritance

我很想知道在JAVA中实现以下现实场景。 让我们说,

  1. 有一个EMPLOYEE类,ENGINEER类和MANAGER类。
  2. EMPLOYEE类是ENGINEER和MANAGER类的超类或父类。
  3. 现在在美好的一天,工程师获得晋升并成为经理人。 那么我们是否应该删除ENGINEER对象并为此提升的ENGINEER创建新的MANAGER对象? 或者什么是在java中实现它的最佳方式?

1 个答案:

答案 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对象(如果他被提升)。