java - 调用子类方法?

标签 java oop if-statement inheritance set

所以,我有这个 super 类:

public class Guest {

    private int id;
    private String firstName;
    private String lastName;
    private LocalDate joinDate;

    public Guest(int id, String firstName, String lastName, LocalDate joinDate){

        this.id = id;
        this.firstName = firstName;
        this.lastName = lastName;
        this.joinDate = joinDate;

    }
    public int getID(){ return id; }
    public String getFirstName(){ return firstName; }
    public String getLastName(){ return lastName; }
    public LocalDate getJoinDate(){ return joinDate; }
}

及其子类

public class VIP extends Guest{

    private LocalDate VIPstartDate;
    private LocalDate VIPexpiryDate;

    public VIP(int id, String firstName, String lastName, LocalDate joinDate, LocalDate VIPstartDate, LocalDate VIPexpiryDate){

        super(id, firstName, lastName, joinDate);

        this.VIPstartDate = VIPstartDate;
        this.VIPexpiryDate = VIPexpiryDate;
    }
    public LocalDate getVIPstartDate(){ return VIPstartDate; }
    public LocalDate getVIPexpiryDate(){ return VIPexpiryDate; }
}

在另一个类(class)中,我有一个名为“客人”的列表,其中存储了所有客人信息。

如何调用这样的 VIP 子类方法? (guests是存储客人信息的列表)

for (Guest guest : guests){
    guest.getid()  // so this calls from the super class - this works
    guest.getVIPstartDate() // this is meant to call from sub class - this doesn't work
}

^ 我无法在我的代码中执行此操作。为什么不呢?

我怎样才能做到这一点?

谢谢

最佳答案

这个解决方案可行。

((VIP) guest).getVIPstartDate();

关于java - 调用子类方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55176235/

相关文章:

swift - if 语句和其他语句中的变量上有感叹号前缀吗?

javascript - 一个对象什么时候应该包含其他对象,什么时候应该引用其他对象?

c# - 我怎样才能避免类型转换但传递正确的类型

javascript - 如何在 Javascript 中为 if 语句添加公差

javascript - "OR"中 "IF"条件的正确语法是什么?

oop - 如何将 Haskell 类型类转换为 F#?

java - 初始化类时使用 Spring 属性

java - Grails 项目 - Servlet 调用 - ClassNotFoundException : javax. servlet.AsyncContext

java - 未调用 Cxf 异常映射器

java - 我不明白这段代码