[英]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.