【问题标题】:Very confusing Abstract Class, need guidance非常混乱的抽象类,需要指导
【发布时间】:2015-11-10 18:31:34
【问题描述】:

我错过了一些 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?
  }

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

【问题讨论】:

  • 我已经习惯了 ADA,这让我讨厌 Java 的混乱程度
  • Java 的基本介绍将涵盖如何将变量添加到类,以及为这些变量创建 getter 和 setter。至于排序,您可以使用许多排序算法。还有入门级的东西。听起来不是很苛刻,但如果这是您遇到的问题,那么您真的应该参考您的入门课程材料或 Java 基础教程。
  • 我不是在寻求如何排序的帮助,我可以做到

标签: class inheritance abstract


【解决方案1】:

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

public class SomeClass {
    private int someInt;

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

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

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

确保任何值/方法/等。您放入基类的内容适用于所有派生类。如果该规则有例外,那么您需要将该成员移出基类,并仅将其移到适用的派生类中。请注意,如果需要,您可以使用复杂的基类层次结构来适应这种情况。


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

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-26
      • 2023-03-17
      • 1970-01-01
      • 2012-12-25
      • 1970-01-01
      • 2018-11-30
      • 2012-07-03
      • 2012-10-22
      相关资源
      最近更新 更多