Frage zu Sub/Super Klassen

XHann3sX

Aktives Mitglied
Hi,

lerne ich nun schon seit ca 1Monat Java nach einigen Online Basics bin ich auif das Buch "Grundkurs programmieren in Java " was, so wie ich gerade glaube ich gelesen habe auch schon 1-2 mal empfohlen wurde nunja.

Ich habe mich inzwischen bis zu den Klassen vorkämpfen können. Es geht um Sub und Superklassen also um Vererbung usw.
nun sind 2 Klassen gegeben
einmal die Klasse Sub :

Java:
package opjektorientiertes.programmieren;

public class Sub extends Super
{   
    public String y = "vor Sub-Konstruktor";
   
    public Sub(){
        System.out.println("Sub-Konstruktor gestartet");
        System.out.println("x = " + x);
        System.out.println("y = " + y);
        x = "nach Sub-Konstruktor";
        y = "nach Sub-Konstruktor";
        System.out.println("Sub-Konstruktor beendet");
        System.out.println("x = "+ x);
        System.out.println("y = "+ y);
    }
}
und die Klasse Super
Java:
package opjektorientiertes.programmieren;

public class Super {
   
   
    public String x = "vor Konstruktor";
           
    public Super(){
       
        System.out.println("Super-Konstruktor gestartet");
        System.out.println("x= "+ x);
        x = "nach Superkonstruktor";
        System.out.println("Super_Konstruktor beendet");
        System.out.println("x = "+ x);       
    }
}
Nun kann ich die nicht ausführen, was ja eigentlich logisch ist da, es keine main-Methode, zumindestens haben ich und Eclipse es mir so erklärt, gibt.
Liegt die nicht ausführbarkeit an Eclipse oder an irgendeinem Erklär Fehler im Buch ?
Oder habe ich doch einen total blöden Fehler eingebaut? 😀



mfg
Hannes
 
Ein Java Programm braucht immer eine main Methode damit es ausgeführt werden kann.
Außerdem ist der Name deiner Klasse "Super" keine so gute Wahl. Es gibt das Java Keyword "super", man sollte vermeiden Klassen so zu nennen wie Keywords bzw. bestehende Frameworkklassen.
 
Habe das jetzt nur nach der Anleitung im Buch gemacht weswegen ich mich auch wundere das es nicht klappt wo müsste ich den da die Main methode einfügen?? direkt in der Klasse ???
 
Entweder du schreibst deine Main-Methode in die Klasse Sub oder du schreibst eine neue Testklasse dazu.
Die Main-Methode in die Super-Klasse zu packen macht in deinem Beispiel wenig Sinn, weil gerade eben getestet werden soll was die Konstruktoren (Super/Sub) bei der Objekterzeugung leisten. Ohne dein Zutun wird bei der Erzeugung eines Sub-Objekts VOR dem Sub-Konstruktor immer der Super-Konstruktor aufgerufen! Darum gehts glaub ich in der Aufgabe^^
 
Entweder du schreibst deine Main-Methode in die Klasse Sub oder du schreibst eine neue Testklasse dazu.
Die Main-Methode in die Super-Klasse zu packen macht in deinem Beispiel wenig Sinn, weil gerade eben getestet werden soll was die Konstruktoren (Super/Sub) bei der Objekterzeugung leisten. Ohne dein Zutun wird bei der Erzeugung eines Sub-Objekts VOR dem Sub-Konstruktor immer der Super-Konstruktor aufgerufen! Darum gehts glaub ich in der Aufgabe^^
Es ist vollkommen egal wo er die main methode reinschreibt.^^ Ob nun in Sub oder in Super macht keinerlei Unterschied.

p.s.
Eine eigene Testklasse wäre natürlich schon anzuraten, da es somit übersichtlicher bleibt
 
und dafür ist es egal wo die main drin steht.
Die main dient in diesem Fall nur zum erzeugen von Sub bzw. Super objekten und das kann man sowohl von Sub als auch von Super aus machen
 

Zurück
Oben