Superklassen Konstruktor Verständnisfrage

Hallo ich hätte eine Frage zum Konstruktor von erbenden Klassen:

Gegeben sei Folgendes Coding:

Java:
public class Mensch {
    String name;

    public Mensch(String pName) {      
this.name = pName;
        IO.writeln("Mensch erzeugt");
    }
  
    public void grueße(){
        IO.writeln("Hallo, ich heiße " + name);      
    }
}

Java:
public class Student extends Mensch {  
    public Student(){      
    IO.writeln("Student erzeugt");
    }
}

Der Compiler meldet bei der Student Klasse den Fehler "Implicit constructor Mensch() is undefined. Must explicitly invoke another constructor".

Ich hab in meiner Java-Lektüre des Vertrauens nochmals das super() Kapitel durchgelesen, jedoch nichts passendes gefunden. Wie kommt der Fehler zustande? Der Konstruktor ist doch ein anderer.
 
Zuletzt bearbeitet von einem Moderator:
Mensch hat einen Konstruktor mit einem String, deshalb wird der Default Konstruktor nicht mehr automatisch erstellt.

der Konstruktor von Student will diesen aber implizit aufrufen, du müsstest jetzt entweder den super("Studentenname") oder einen DefaultKonstruktor auf Mensch erstellen.

Wobei zweiteres wohl kaum Sinn macht, wenn ein Mensch zwangsläufig einen Namen braucht, ein Student aber nicht.
 

Neue Themen


Zurück
Oben