是否可以更改我在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>


以上是是否可以更改我在java中覆盖的方法的参数,或者我是否需要重载它?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>