我想要覆盖面向对象的东西,但我卡在这里。我在公司类员工[0] .setBonus(50)部分中遇到错误。除了在Employee类中定义Bonus方法之外,没有其他解决方法吗?或者有无法将所有对象保存在一个数组中?我定义了奖励方法,但还有一件事,我必须在Empoyee类的getBonus方法中返回?在java中创建超类的类型的子类对象
public class Company
{
private static Employee[] employees;
public Company()
{
employees= new Employee[]{new Manager("Sapo",10000),new Employee("James",5000),new Employee("Jessie",5001)};
}
public static void main(String[] args)
{
Company company= new Company();
employees[0].setBonus(50);
System.out.println(employees[0].getBonus());
}
}
public class Employee extends Person
{
int salary;
public Employee(String name,int salary) {
super(name);
setSalary(salary);
// TODO Auto-generated constructor stub
}
public void setSalary(int salary)
{
this.salary= salary;
}
public int getSalary()
{
return salary;
}
}
public class Manager extends Employee
{
private int bonus;
public Manager(String name, int salary) {
super(name, maas);
}
public void setBonus(int bns)
{
bonus=bns;
}
public int getBonus()
{
return bonus;
}
public int getSalary()
{
return salary+bonus;
}
}
我很困惑。
[调用从超类的子类方法]的可能的复制(http://stackoverflow.com/questions/10021603/calling-a-subclass-method-from-superclass) – shmosel