黑马程序员技术交流社区

标题: 问一个关与java中父类和子类的问题 [打印本页]

作者: smm19930312    时间: 2014-2-23 22:06
标题: 问一个关与java中父类和子类的问题
Employee e = null;       

if(tokens[0].equals("E")) {
e = new SalaryEmployee(id, firstName, lastName, title, annualSalary);
} else if(tokens[0].equals("S")) {
e = new Staff(id, firstName, lastName, title, hourlyPayRate, hoursWorked); 、
} else if(tokens[0].equals("T")) {
e = new Temporary(id, firstName, lastName, title, hourlyPayRate, hoursWorked);
}

其中父类是Employee,我用new实例化的对象都是子类,我就想问一下在这种情况下怎么调用子类的方法?
谢谢!这里是要用到子类方法的地方。红色的都是子类里的方法。
for(Employee e : payroll) {
//format their information
sb.append(String.format("%-8s %-20s %-10s %-30s $%8.2f $%8.2f $%8.2f\n",
e.getID(), e.getName(), e.getType(), e.getTitle(), e.getGross(), e.getTax(), e.getNetpay()));
}

作者: chenfc8578    时间: 2014-2-23 23:55
可以强制向下转型:
例如
Employee e = new SalaryEmployee();//转型前父类引用必须指向子类对象
SalaryEmployee  s = (SalaryEmployee)e;//将父类引用强制转成子类引用

这样s就可以调用子类方法了





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2