Java列表和类继承

时间:2015-10-31 20:16:33

标签: java list inheritance arraylist

List <Person> pers = new ArrayList<Person>();

pers.add(new Women("something1"));
pers.add(new Women("something2"));

pers.add(new Men("something1"));
pers.add(new Men("something2"));

System.out.println(pers); // prints everything

女性和男性课程延伸人。将数据存储在列表中后,如何仅打印女性或仅打印男性?另外我如何访问女性和男性的属性?

2个列表工作正常,但我只需要使用一个列表时遇到麻烦。

2 个答案:

答案 0 :(得分:4)

使用instanceof关键字。

for(Person person : pers){
    if(person instanceof Women){
        System.out.println("I am a woman");
        int height = person.getHeight();
    }
    else if(person instanceof Men){
        System.out.println("I am a Man");
        int weight = person.getWeight();
    }
}

一旦你知道这个人是什么类型的对象,你可以调用该对象上的任何公共变量/ getter / setter。

答案 1 :(得分:0)

Object.getClass()将返回对象的类型