abstract class Benutzer { private String name; private String nachname; private int kundennummer; private String art; // Benutzerart (Erwachsener, Schüler/Student, etc.) private double jahresgebuehr; // Jahresgebühr des Benutzers private double gebuehren; // Aktuelle ausstehende Gebühren des Benutzers // Konstruktor public Benutzer(String name, String nachname, int kundennummer, String art) { this.name = name; this.nachname = nachname; this.kundennummer = kundennummer; this.art = art; // Jahresgebühr festlegen basierend auf der Benutzerart if (art.equalsIgnoreCase("Erwachsener")) { this.jahresgebuehr = 50.0; // Beispiel für regulären Preis } else if (art.equalsIgnoreCase("Schüler/Student")) { this.jahresgebuehr = 25.0; // Beispiel für ermäßigten Preis } else { this.jahresgebuehr = 0.0; // Default-Wert, z. B. für Admins oder Kinder } this.gebuehren = 0.0; // Anfangs keine Gebühren } // Getter- und Setter-Methoden public String getName() { return name; } public String getNachname() { return nachname; } public int getKundennummer() { return kundennummer; } public String getArt() { return art; } public double getJahresgebuehr() { return jahresgebuehr; } public double getGebuehren() { return gebuehren; } public void setGebuehren(double gebuehren) { this.gebuehren = gebuehren; } // toString-Methode @Override public String toString() { return "Benutzer{" + "Name='" + name + '\'' + ", Nachname='" + nachname + '\'' + ", Kundennummer=" + kundennummer + ", Art='" + art + '\'' + ", Jahresgebühr=" + jahresgebuehr + ", Ausstehende Gebühren=" + gebuehren + '}'; } // Spezifische Benutzertypen als Unterklassen public static class Erwachsener extends Benutzer { public Erwachsener(String name, String nachname, int kundennummer) { super(name, nachname, kundennummer, "Erwachsener"); } } public static class SchuelerStudent extends Benutzer { public SchuelerStudent(String name, String nachname, int kundennummer,String art) { super(name, nachname, kundennummer,art); } } }