无法从超类访问子类方法

时间:2018-04-02 21:03:05

标签: java oop inheritance

我正在做面向对象编程的家庭作业,我卡在某处。我们基本上被告知要做一个电话簿。它有一个PhoneNumber类,它扩展了ContactInfo类。还有一个PhoneBookEntry类,它包含ContactInfo对象的ArrayList。

在PhoneBookEntry类中,必须有一个名为displayPhoneNumbers()的方法。家庭作业说: displayPhoneNumbers():打印contactInfos中的所有PhoneNumbers。
那么,要显示一个电话号码,我必须能够访问PhoneNumber对象,但我在PhoneBookEntry类中拥有的只是一个ContactInfo对象的列表,其中没有电话号码。

public class PhoneBookEntry {
    private String name;
    ArrayList<ContactInfo> contactInfos;

    public PhoneBookEntry(){
        contactInfos = new ArrayList<>();
    }

    public void displayPhoneNumbers(){
        for (int i = 0; i <= contactInfos.size(); i++) {
            //Error
            System.out.println(contactInfos.get(i).getNumber());
        }         
    }
}   

public abstract class ContactInfo {
    String contactName;

    public ContactInfo(String contactName){
        this.contactName=contactName;
    }

    abstract void displayContact();
}

enter image description here

enter image description here

由于ContactInfo类没有getNumber()方法,因此无法访问和打印它。我在这里遗漏了什么或者作业有问题吗?

0 个答案:

没有答案