非常混乱的抽象类,需要指导

时间:2015-11-10 18:31:34

标签: class inheritance abstract

我错过了一些CS课程,即涉及多态,继承和抽象类等主题的课程。我不是要求你做我的作业,但我不知道从哪里开始获得进一步的指导,所以给我一个骨架或什么东西会对我有很大帮助,我很困惑。

所以问题是创建一个带有两个子类的员工抽象类,permanentEmployee和TempEmployee。我必须在这些子类中存储名称,部门和工资等信息,然后根据用户想要的顺序对它们进行排序。我知道我是这样开始的

 public abstract class Employee
  {
  }
  public class TempEmployee extends Employee
  {
\\variables such as name, salary, etc, here?
  }
  public class PermEmployee extends Employee
  {
\\here too?
  }

但我不知道如何在那里存储变量,以后更少访问它们进行排序和显示。请指导。

2 个答案:

答案 0 :(得分:0)

如果您要查找的只是Java中类级数据成员的示例,这应该会有所帮助:

public class SomeClass {
    private int someInt;

    public int getSomeInt() {
        return this.someInt;
    }

    public void setSomeInt(int someInt) {
        this.someInt = someInt;
    }
}

关于多态,请注意方法是多态的,但不是。当您在基类和派生类中放置值和方法(getter和setter)时,我鼓励您彻底地尝试这些概念。尝试将整个值/ getter / setter移动到基类,尝试仅移动值但不移动getter / setter,尝试将值放在两者中,将getter / setter放在两者中,等等。看看它的行为。

确保任何值/方法/等。放在基类中的内容适用于所有派生类。如果该规则存在异常,那么您需要将该成员移出基类,并仅移动到适用的派生类中。请注意,如果需要,您可以拥有复杂的基类层次结构。

当需要访问这些成员进行排序/显示/等时,使用代码将使用getter / setter。例如:

SomeClass myInstance = new SomeClass();
myInstance.setSomeInt(2);
System.out.println(myInstance.getSomeInt());

答案 1 :(得分:0)

我不确定您使用的是哪种语言,但由于它已“扩展”,我确信您不使用c#或CSharp,它可以是Java。所以我建议你去TutorialsPoint。这篇特别的文章有这里描述的抽象。

为了让您轻松,在接口和抽象中我们总是创建一个结构或基础,它具有定义或声明的所有常见事物(显然,接口只有方法,并且不能在其中声明变量)。

如上所述,在上面的例子中,EmployeeId,EmployeeName,EmployeeAddress ...等应该在Abstract Base类Employee的基类中定义,但是在TempEmployee中你可以有一个标准,如EmpTermPeriod,EmpContractRenewalDate,EmpExternalPayrollCompanyName(已经使名称变长并且自我描述)和PermEmployee有像EmpJoiningDate,EmpConfirmationDate,EmpGraduityDate等字段。 我希望它有所帮助。