打印出一个对象数组

时间:2017-05-28 18:17:51

标签: java object pseudocode

我有一个简单的问题

我有飞行,水生类扩展动物类

如果我只想在Animal对象数组中打印出Flying对象

只做像

这样的事情是安全的
IF choice is Flying
FOR i=0 TO num CHANGEBY 1 DO
    IF Animal[i] INSTANCEOF Flying THEN
        str = Flying.toString

    END IF
END FOR
OUTPUT str

或者

FOR i=0 TO num CHANGEBY 1 DO
    IF Animal[i] INSTANCEOF Flying THEN
        str = Animal.toString

执行此操作并覆盖toString方法

我是java的新手,所以我甚至不确定这两个中的任何一个是否正确。所以欢迎任何形式的帮助

感谢您的帮助

编辑 -

public static void display(ExampleA[] example)
{ 
    for(int pos = 0; pos < example.length; pos++) 
    {   
        if(example instanceof A)
        {

            output = A.toString()            
        }


    }

    System.out.println(output);

}

抱歉这是一个含糊不清的问题,这是我的问题的一个例子

我可以输出= A.toString()来获取对象字符串或者我必须这样做

 output = example.toString()  

并覆盖toString方法以打印出A类中的toString以及Example类

2 个答案:

答案 0 :(得分:1)

嗨你的第二种方法是正确的,这里是java代码,你需要实现toString Parent(Animal)或Child(Flying)类。

public class Application {

    public static void main(String[] args) {
        Animal arr[] = new Animal[]{new Flying(), new Aquatic(), new Aquatic()};
        for (Animal a : arr) {
            if (a instanceof Flying) {
                System.out.println(a);
            }
        }
    }
}

class Animal {
}

class Flying extends Animal {
    @Override
    public String toString() {
        return "Flying::toString";
    }
}


class Aquatic extends Animal {
}

答案 1 :(得分:0)

这不是java代码。但考虑到问题的逻辑,第一种选择看起来更好。

如果你有一个Animal对象数组,其中一些是指Flying,有些是指Aquatic,那么如果你想从Animal引用调用Flying / Aquatic方法,你应该总是在ifOf中检查if条件然后基于动物实例所引用的子对象,调用子类方法。