Hallo, ich habe eine Frage zu folgendem Code:
Ich habe versucht mir selber den aus meiner Sicht etwas kryptischen Aufruf von WindowsAdapter zu erklären zu erklären:
WindowAdapter implementiert WindowListener (WindowListener ist demnach ein Interface, andernfalls könnte man es nicht implementieren), allerdings handelt es sich um eine "leere Implementierung", d.h. Methoden aus WindowListener werden nicht überschrieben. Weil WindowAdapter ein Interace implementiert, aber nicht dessen Methoden überschreibt, ist WindowAdapter selber abstrakt. Da WindowAdapter keine Methoden definiert kann man alle Methoden von WindowListener nutzen ohne jedoch nicht benötigte Methoden implementieren zu müssen. So gesehen also ein Trick der uns Programmierarbeit erspart.
Code:
import java.awt.Frame; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class Schliesse { public static void schliesse(Frame f){ f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ Runtime.getRuntime().exit(0); } } ); } }
WindowAdapter implementiert WindowListener (WindowListener ist demnach ein Interface, andernfalls könnte man es nicht implementieren), allerdings handelt es sich um eine "leere Implementierung", d.h. Methoden aus WindowListener werden nicht überschrieben. Weil WindowAdapter ein Interace implementiert, aber nicht dessen Methoden überschreibt, ist WindowAdapter selber abstrakt. Da WindowAdapter keine Methoden definiert kann man alle Methoden von WindowListener nutzen ohne jedoch nicht benötigte Methoden implementieren zu müssen. So gesehen also ein Trick der uns Programmierarbeit erspart.
Comment