2017-05-28 3 views
0

ich einer kurzen FrageDrucke ein Array von Objekt aus

habe ich habe Fliege, Aquatic Klasse Tier Klasse erstreckt

, wenn ich nur in dem Array Tier Objekt will auszudrucken

Fliegende Objekte

ist es sicher zu tun, nur so etwas wie

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 

Oder

dies tun, und überschreiben Sie die Methode toString

im neu in Java so im nicht einmal sicher, ob eines dieser beiden recht. so dass jede Art von Hilfe ist willkommen

Dank für die Hilfe

Bearbeiten-

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); 

} 

sorry für die zweideutige Frage dies ein Beispiel für meine Frage ist

kann ich output = A tun .toString() um die Objektkette zu bekommen oder muss ich

und ov Error the toString-Methode zum Ausdrucken der toString in A-Klasse sowie Beispiel-Klasse

+4

Diese Frage ist möglicherweise falsch. Der angegebene Code liegt nicht nahe bei gültigem Java – ControlAltDel

+0

Wie ich in meiner Antwort erklärt habe, gibt es so etwas wie 'A.toString()' nicht. Warum fragst du, ob du etwas tun kannst, anstatt es nur zu versuchen und selbst zu sehen, dass du es nicht tun kannst? –

Antwort

0

Dies ist kein Java-Code. Aber in Anbetracht der Logik der Frage, sieht die erste Option besser aus.

Wenn Sie ein Array von Animal-Objekten haben, in denen sich einige auf Fliegen und einige auf Wasser beziehen, dann sollten Sie immer eine Instanz aufrufen, wenn Sie Flying/Aquatic-Methoden von Animal referenz aufrufen möchten Wenn die Bedingung dann auf dem Kindobjekt basiert, auf das sich die Tierinstanz bezieht, rufen Sie die Kindklassenmethode auf.

1

Hallo Ihr zweiter Ansatz ist richtig, hier ist Java-Code dafür, Sie müssen ToString entweder Parent (Animal) oder in Child (Flying) -Klasse implementieren.

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 { 
} 
Verwandte Themen