Anonyme Klassen - Warum wird in der Konsole nichts ausgegeben?

mrkennedie89

Mitglied
Hallo zusammen,

ich versuche folgendes Problem zu verstehen: Ich habe eine Klasse Lebewesen, die im Konstruktor die Klasse Mensch als Parameter benötigt.

Java:
public class Lebewesen {

    public Lebewesen(Mensch mensch) {

    }
}
Mensch ist abstrakt und hat eine abstrakte Methode singen().

Code:
public abstract class Mensch{
   
    public abstract void singen();
   

}

In der Mainmethode möchte ich anonym die Klasse Lebewesen erzeugen und auch Mensch anonym. Wenn ich nun die Methode singen()
implementiere und einen Befehl ausgebe, warum bleibt dann die Konsole leer? Und gibt es eine Möglichkeit, dass genau das ausgeben wird,
obwohl ich kein Objekt der Klasse Mensch direkt ansprechen kann?

Code:
public class Main {
    public static void main(String[] args) {

       new Lebewesen(new Mensch() {
           @Override
           public void singen() {
               System.out.println("Ich singe");
           }
       });
     
    }
}
 
Naja, du rufst ja auch nirgendwo die Methode singen() auf...
Hierzu könntest du ja einfach mal folgendes in deinem existierenden Konstruktor von Lebewesen machen:
Java:
public class Lebewesen {
    public Lebewesen(Mensch mensch) {
        mensch.singen(); // <- neu!
    }
}
 

Neue Themen


Zurück
Oben