public abstract class Medien { // Eigenschaften der Medien-Klasse protected String name; protected String autor; protected int id; protected boolean verlängerung; // Standardwert für alle Medien protected int frist; // Diese Variable wird in den Unterklassen gesetzt // Konstruktor public Medien(String name, String autor, int id) { this.name = name; this.autor = autor; this.id = id; this.verlängerung = false; // Standardwert, falls nicht anders gesetzt } // Getter-Methoden public String getName() { return name; } public String getAutor() { return autor; } public int getId() { return id; } public boolean isVerlängerung() { return verlängerung; } // Setter für verlängerung, falls benötigt public void setVerlängerung(boolean verlängerung) { this.verlängerung = verlängerung; } // Getter für frist public int getFrist() { return frist; } // Statische innere Klassen, die Medien erben public static class Book extends Medien { // Spezifische frist für Bücher public Book(String name, String autor, int id) { super(name, autor, id); this.frist = 4; // frist für Book ist 4 } } public static class Dvds extends Medien { // Spezifische frist für DVDs public Dvds(String name, String autor, int id) { super(name, autor, id); this.frist = 1; // frist für Dvds ist 1 } } public static class Cds extends Medien { // Spezifische frist für CDs public Cds(String name, String autor, int id) { super(name, autor, id); this.frist = 2; // frist für Cds ist 2 } } public static class Brettspiel extends Medien { // Spezifische frist für Brettspiele public Brettspiel(String name, String autor, int id) { super(name, autor, id); this.frist = 2; // frist für Brettspiel ist 2 } } public static class Videospiel extends Medien { // Spezifische frist für Videospiele public Videospiel(String name, String autor, int id) { super(name, autor, id); this.frist = 3; // frist für Videospiel ist 3 } } }