[英]I can't use PrinterWriter in my program, could anyone help me figure it out?
[英]I try to use polymorphism but my code does not work as i excpected, could anyone help me solve this problem?
用户管理器.java:
public class UserManager {
public void add(User user) {
System.out.println(user.getUserNumber() + " user added");
}
}
StudentManager.java:
public class StudentManager extends UserManager {
@Override
public void add(User user) {
System.out.println(user.getUserNumber() + " student added");
}
}
主要.java:
public class Main {
public static void main(String[] args) {
Student student1 = new Student();
student1.setUserNumber("12345");
UserManager userManager = new UserManager();
userManager.add(student1);
}
}
期待 Output:12345 学生添加。
添加了真正的 output:12345 用户。
为什么我得到这个 output?
如果您想按预期使用多态,则应将UserManager
object 实例化为StudentManager
,因此 JVM 将调用覆盖的add
方法。 这是正确的方法:
public class Main {
public static void main(String[] args) {
Student student1 = new Student();
student1.setUserNumber("12345");
UserManager userManager = new StudentManager();
userManager.add(student1);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.