我有一个简单的问题
我有飞行、水上运动类(class),扩展了动物类(class)
如果我只想打印动物对象数组中的飞行对象
做这样的事情是否安全
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);
}
抱歉,这个问题含糊不清,这是我的问题的一个例子
我可以做output = A.toString()来获取对象字符串还是我必须做
output = example.toString()
并重写toString方法,打印出A类和Example类中的toString
最佳答案
嗨,您的第二种方法是正确的,这里是 java 代码,您需要在 Parent(Animal) 类或 Child(Flying) 类中实现 toString。
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 {
}
关于java - 打印出对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44230528/