我是一个涉及Java(又)的Web开发人员,我遇到了一些问题。Java子类的最后一个实例覆盖值
基本上,我有一个超类员工有两个子类扩展它称为管理和程序员。 Employee类包含一个基本上是Employee对象数组的employees
数组。
下面是两个类(员工和管理)和最终主要方法的重要摘要。我会在底部解释输出。
public class **Employee** {
private static String firstName;
protected static int MAXEMPLOYEES = 5;
protected Employee[] employees = new Employee[MAXEMPLOYEES];
protected int totEmployees = 0;
public Employee(String first) {
setFirstName(first);
}
public void setFirstName(String str){
firstName = str;
}
public String getFirstName(){
return firstName;
}
public boolean addEmployee(String fname) {
boolean added = false;
if (totEmployees < MAXEMPLOYEES) {
Employee empl = new Employee(fname);
employees[totEmployees] = empl;
added = true;
totEmployees++;
}
return added;
}
}
public class **Management** extends **Employee** {
private String title = "Project Manager";
public Management(String fname, String t){
super(fname);
title = t;
}
public boolean addManagement(String fname, String t){
boolean added = false;
if (totEmployees < MAXEMPLOYEES) {
employees[totEmployees] = new Management(fname, t);
added = true;
totEmployees++;
}
return added;
}
}
-------------------------------------
package employee;
public class EmployeeApplication {
public static void main(String[] args) {
Employee[] empl = new Employee[3];
empl[0] = new Employee("Kyle");
empl[1] = new Management("Sheree", "Director");
System.out.println(empl[0].getFirstName());
}
}
现在,我期望系统打印出“Kyle”,但它打印出“Sheree”。有任何想法吗???
非常好。谢谢。我觉得有点愚蠢,但这是完美的!非常感谢(我会在7分钟内接受答案,显然:-)) – 2013-04-09 23:13:45
@ KyleO'Brien不客气。如果您之前没有进行过OOP(或者有时即使拥有不同的语言),也很容易错过一些细节。 – 2013-04-09 23:19:05
在PHP中编码不是这个肛门:P – 2013-04-09 23:21:31