Tôi có một lớp trừu tượng được gọi là Người dùng, một người dùng có thể được tạo dưới dạng Loại sinh viên hoặc dưới dạng loại Giáo viên. Tôi đã thực hiện một ArrayList của người sử dụng (của học sinh và giáo viên) và những gì tôi đang cố gắng làm là gọi một ví dụ phương pháp tùy thuộc vào những gì đối tượng hiện nay là một thể hiện của:Nhiều loại đối tượng trong một ArrayList
for (User user : listOfUsers) {
String name = user.getName();
if (user instanceof Student) {
// call getGrade();
} else { // it is an instance of a Teacher
// call getSubject();
}
}
Vấn đề tôi đang gặp là vì nó là một ArrayList của các đối tượng User, nó không thể lấy phương thức kiểu Student, ví dụ, getGrade(). Tuy nhiên, bởi vì tôi có thể xác định những gì người dùng hiện tại là một thể hiện của, tôi tò mò như thế nào hay không nó vẫn có thể gọi một phương pháp cụ thể tùy thuộc vào loại người dùng nó được.
Điều này có thể xảy ra không hoặc tôi có phải tách riêng các loại người dùng thành các danh sách riêng biệt không?
Vui lòng trả lời sớm, cảm ơn rất nhiều.
giúp tôi để cải thiện câu trả lời của tôi và bình luận bình chọn? – user987339
Câu trả lời hay. Liên kết, định nghĩa và mẫu. Mặc dù có lẽ bạn nên làm khác 'if (user instanceof Teacher) {}' và đặt một 'else' ở phía dưới chỉ cho hành vi mặc định –
Tnx @Nappa The Saiyan! – user987339