是否可以更改我在java中覆盖的方法的参数,或者我是否需要重载它?
public class Employee{
private String fullName;
private String phone;
private String mail;
}
public class Academician extends Employee{
private String branch;
}
public class EmployeeManager{
public void login(Employee employee){
System.out.println(employe.getFullName() + " logged in.")
}
}
public class AcademicianManager extends EmployeeManager{
@Override
public void login(Academician academican){
System.out.println("Academician " + academican.getFullName() + " logged in.")
}
}
如上,当一个员工登录系统时,我想向他发送私人消息和交易,同样,当一个学者登录系统时,我想这样做。
当我像这样使用它时,我收到以下错误:
方法不会覆盖其超类中的方法
回答
使用参数中的 T 修改您的基类:
public class EmployeeManager<T extends Employee>{
public void login (T employee){
System.out.println(employee.getFullName() + " logged in.")
}
}
然后像这样定义你的子类:
public class AcademicianManager extends EmployeeManager<Academician>