【发布时间】:2021-02-27 13:19:16
【问题描述】:
我有不同类型的用户,他们都继承自父类 User:
class User(string username, string password){...}
class UserAdmin(string username, string password) extends User{
...
// new methods
}
class User(string username, string password) extends User{
...
// new methods
}
我有一种登录方法,但问题是,如果我使用 UserAdmin 的凭据登录,我想返回一个 UserAdmin,对于 User 的所有其他子类也是如此。
public User login(String userName, String password) {
for (User user : usersList) {
if (user.isCorrectLogin(userName, password)) {
return user;
}
}
throw new RuntimeException("Login failed !");
}
我该怎么做?我应该为每种类型的用户设置多个 login() 方法吗?或者是否有不同的方法来设计用户一开始就没有这个问题?
【问题讨论】:
标签: java oop inheritance design-patterns polymorphism