{"beispielaufgaben":[{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"Ausgangssituation","typ":"ueberschrift"},{"text":"Die Nordwall Spedition GmbH in Flensburg betreibt einen gemischten Fuhrpark und plant ihre Werkstatttermine künftig softwaregestützt.","typ":"absatz"},{"text":"Die Klasse Fuhrparkliste verwaltet eine Liste vom Typ Fahrzeug. Die abstrakte Klasse Fahrzeug deklariert die Methode wartungFällig(). Die Klassen Sattelzugmaschine und Kühlauflieger erben von Fahrzeug und überschreiben diese Methode mit eigenen Regeln.","typ":"absatz"},{"text":"Die Methode terminliste der Klasse Fuhrparkliste ruft für jedes gespeicherte Fahrzeug wartungFällig() auf. Welche Implementierung dabei abläuft, steht erst zur Laufzeit fest.","typ":"absatz"},{"text":"Nennen und erklären Sie den zugrunde liegenden Mechanismus. 4 Punkte","typ":"absatz"}],"beispiel_id":"bsp-polymorphie-erklaeren-freitextantwort-01","freigabeart":"maschinell","loesung":[{"text":"Nennen und erklären Sie den zugrunde liegenden Mechanismus. 4 Punkte","typ":"absatz"},{"text":"(Hinweis: Andere, ebenfalls korrekte Formulierungen sind möglich. Für die Nennung genügt einer der gleichwertigen Begriffe.)","typ":"absatz"},{"text":"Nennung: 1 Punkt","typ":"ueberschrift"},{"text":"Der Mechanismus ist die späte Bindung bzw. late binding, auch dynamische Bindung genannt. Sie ist Bestandteil der Polymorphie.","typ":"absatz"},{"text":"Erklärung: 3 Punkte","typ":"ueberschrift"},{"text":"- Die Liste der Klasse Fuhrparkliste ist mit dem Typ der Oberklasse Fahrzeug\n  deklariert. Beim Übersetzen des Programms ist deshalb nicht bekannt, ob an einer\n  Position ein Objekt der Klasse Sattelzugmaschine oder der Klasse Kühlauflieger\n  steht. (1 Punkt)\n- Beim Aufruf von wartungFällig() wird daher erst zur Laufzeit ermittelt, zu\n  welcher konkreten Klasse das angesprochene Objekt gehört. (1 Punkt)\n- Ausgeführt wird die in dieser konkreten Klasse überschreibende Implementierung\n  und nicht die in der abstrakten Klasse Fahrzeug deklarierte Methode. Die\n  Methode terminliste bleibt dadurch unverändert, auch wenn weitere\n  Fahrzeugarten ergänzt werden. (1 Punkt)","typ":"code"},{"text":"Die Erklärungspunkte können auch dann vergeben werden, wenn die Nennung des Fachbegriffs fehlt, der Sachverhalt aber inhaltlich zutreffend beschrieben wird. Eine bloße Wiederholung des Aufgabentextes („es wird erst zur Laufzeit entschieden\") ist ohne Begründung nicht zu bewerten.","typ":"absatz"}],"operator_id":"operator.erklaeren","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":4,"punkterahmen":{"max":4,"min":4},"quellen":["ap2-fiae-2026-sommer-ae2-a02-b-bb"]},{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"Ausgangssituation","typ":"ueberschrift"},{"text":"Das Sankt-Aurelius-Klinikum in Ravensburg sammelt die Untersuchungsergebnisse eines Patienten in einer digitalen Akte und möchte die ärztliche Freigabe beschleunigen.","typ":"absatz"},{"text":"Die Klasse Befundmappe hält eine Liste vom Typ Befund. In der abstrakten Klasse Befund ist die Methode freigabeReif() deklariert. Die erbenden Klassen Blutbild und Röntgenbefund überschreiben sie mit jeweils eigenen Prüfregeln.","typ":"absatz"},{"text":"Die Methode offeneFreigaben der Klasse Befundmappe ruft freigabeReif() für jeden gespeicherten Befund auf. Erst während der Programmausführung zeigt sich, welche der überschreibenden Methoden tatsächlich abgearbeitet wird.","typ":"absatz"},{"text":"Nennen und erklären Sie den dafür verantwortlichen Mechanismus. 4 Punkte","typ":"absatz"}],"beispiel_id":"bsp-polymorphie-erklaeren-freitextantwort-02","freigabeart":"maschinell","loesung":[{"text":"Nennen und erklären Sie den dafür verantwortlichen Mechanismus. 4 Punkte","typ":"absatz"},{"text":"(Hinweis: Andere, ebenfalls korrekte Formulierungen sind möglich. Für die Nennung genügt einer der gleichwertigen Begriffe.)","typ":"absatz"},{"text":"Nennung: 1 Punkt","typ":"ueberschrift"},{"text":"Verantwortlich ist die späte Bindung bzw. late binding, gleichbedeutend auch dynamische Bindung. Sie ist Bestandteil der Polymorphie.","typ":"absatz"},{"text":"Erklärung: 3 Punkte","typ":"ueberschrift"},{"text":"- Die Befundmappe kennt ihre Einträge nur über den Typ der abstrakten Oberklasse\n  Befund. Zum Zeitpunkt der Übersetzung lässt sich nicht bestimmen, ob ein\n  Eintrag ein Blutbild oder ein Röntgenbefund ist. (1 Punkt)\n- Der Aufruf freigabeReif() wird deshalb nicht fest einer Implementierung\n  zugeordnet; der tatsächliche Typ des Objekts wird erst während der\n  Programmausführung ausgewertet. (1 Punkt)\n- Aufgerufen wird dann genau die überschreibende Methode der jeweiligen\n  Unterklasse mit ihren eigenen Prüfregeln. Eine weitere Befundart lässt sich\n  ergänzen, ohne die Methode offeneFreigaben anzupassen. (1 Punkt)","typ":"code"},{"text":"Die Erklärungspunkte können auch ohne korrekte Nennung des Fachbegriffs vergeben werden, sofern der Sachverhalt inhaltlich zutreffend beschrieben wird. Wird lediglich das Überschreiben von Methoden beschrieben, ohne dass der Bezug zur Auswahl während der Programmausführung hergestellt wird, ist höchstens 1 Punkt der Erklärung zu vergeben.","typ":"absatz"}],"operator_id":"operator.erklaeren","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":4,"punkterahmen":{"max":4,"min":4},"quellen":["ap2-fiae-2026-sommer-ae2-a02-b-bb"]},{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"Ausgangssituation","typ":"ueberschrift"},{"text":"Die Talblick Versicherung AG in Kaiserslautern bearbeitet eingehende Schadensmeldungen bisher überwiegend manuell und will einfache Fälle maschinell vorprüfen lassen.","typ":"absatz"},{"text":"Die Klasse Meldungsstapel fasst Objekte der abstrakten Klasse Schadensmeldung zusammen. Deren Methode automatischPrüfbar() ist in den Unterklassen Glasschaden und Elementarschaden unterschiedlich ausprogrammiert.","typ":"absatz"},{"text":"Ruft der Meldungsstapel automatischPrüfbar() für seine Einträge auf, so ist bei der Übersetzung des Programms noch offen, welche dieser Ausprägungen jeweils zum Einsatz kommt. Die Entscheidung fällt erst beim Ablauf.","typ":"absatz"},{"text":"Nennen Sie den Mechanismus, der dieses Verhalten ermöglicht, und erklären Sie seine Wirkungsweise. 4 Punkte","typ":"absatz"}],"beispiel_id":"bsp-polymorphie-erklaeren-freitextantwort-03","freigabeart":"maschinell","loesung":[{"text":"Nennen Sie den Mechanismus, der dieses Verhalten ermöglicht, und erklären Sie seine Wirkungsweise. 4 Punkte","typ":"absatz"},{"text":"(Hinweis: Andere, ebenfalls korrekte Formulierungen sind möglich. Für die Nennung genügt einer der gleichwertigen Begriffe.)","typ":"absatz"},{"text":"Nennung: 1 Punkt","typ":"ueberschrift"},{"text":"Das Verhalten beruht auf der späten Bindung bzw. late binding, auch dynamische Bindung genannt. Sie ist Bestandteil der Polymorphie.","typ":"absatz"},{"text":"Erklärung: 3 Punkte","typ":"ueberschrift"},{"text":"- Der Meldungsstapel verwaltet seine Einträge unter dem Typ der abstrakten\n  Klasse Schadensmeldung. Der Übersetzer kann daher nicht bestimmen, ob ein\n  Eintrag ein Glasschaden oder ein Elementarschaden ist. (1 Punkt)\n- Die Zuordnung des Aufrufs automatischPrüfbar() zu einer Implementierung\n  geschieht deshalb nicht beim Übersetzen, sondern beim Ablauf des Programms\n  anhand des tatsächlichen Typs des jeweiligen Objekts. (1 Punkt)\n- Es läuft dann die Ausprägung der jeweiligen Unterklasse ab. Der aufrufende\n  Programmteil muss die einzelnen Schadensarten nicht unterscheiden und bleibt\n  bei der Aufnahme weiterer Schadensarten unverändert. (1 Punkt)","typ":"code"},{"text":"Die Erklärungspunkte können auch dann vergeben werden, wenn der Fachbegriff nicht genannt wird, der Sachverhalt aber inhaltlich zutreffend dargestellt ist. Wird statt der späten Bindung das Überladen von Methoden beschrieben, ist die Nennung nicht zu bewerten.","typ":"absatz"}],"operator_id":"operator.erklaeren","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":4,"punkterahmen":{"max":4,"min":4},"quellen":["ap2-fiae-2026-sommer-ae2-a02-b-bb"]},{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"Ausgangssituation","typ":"ueberschrift"},{"text":"Die Nordwind Kurier GmbH in Flensburg beliefert Apotheken und Arztpraxen. Für die Auftragsannahme entsteht eine neue Software, die zunächst drei Sendungsarten kennt.","typ":"absatz"},{"text":"– Eine Standardsendung wird ohne Zuschlag befördert und am nächsten Werktag ausgeliefert.\n– Eine Eilsendung kostet 6,50 EUR zusätzlich und wird am Auftragstag ausgeliefert.\n– Eine Kühlsendung kostet 11,00 EUR zusätzlich und wird am nächsten Werktag ausgeliefert.","typ":"absatz"},{"text":"Die Sendungsart steht in einer Instanzvariablen. Beide Methoden werten sie mit derselben Auswahlstruktur aus.","typ":"absatz"},{"text":"Sendung\n- art : String\n+ Sendung(art : String)\n+ ermittleZuschlag() : Double\n+ ermittleLiefertag() : Integer","typ":"absatz"},{"text":"Weil Gefahrgut als vierte Sendungsart geplant ist, schlägt Ihre Teamleiterin vor, die Auswahlstrukturen abzulösen.","typ":"absatz"},{"text":"a) Erläutern Sie den Begriff Polymorphie.","typ":"absatz"},{"text":"4 Punkte","typ":"punktzeile"},{"text":"Hinweis: Gehen Sie darauf ein, wann feststeht, welche Methode ausgeführt wird. Gehen Sie dabei auch auf die Auswirkungen für die geplante Software der Nordwind Kurier GmbH ein.","typ":"absatz"}],"beispiel_id":"bsp-polymorphie-erlaeutern-freitextantwort-01","freigabeart":"maschinell","loesung":[{"text":"a) 4 Punkte","typ":"ueberschrift"},{"text":"Polymorphie (Vielgestaltigkeit) bezeichnet in der objektorientierten Programmierung den Umstand, dass ein und derselbe Methodenaufruf je nach tatsächlichem Typ des angesprochenen Objekts unterschiedlich ausgeführt wird.","typ":"absatz"},{"text":"Bewertung (je 1 Punkt, insgesamt 4 Punkte):","typ":"ueberschrift"},{"text":"1 Punkt: Mehrere Klassen einer Vererbungshierarchie stellen eine Methode mit gleicher Signatur bereit; die abgeleiteten Klassen überschreiben die in der Basisklasse deklarierte Methode mit eigenem Verhalten.","typ":"absatz"},{"text":"1 Punkt: Objekte der abgeleiteten Klassen lassen sich über den Typ der Basisklasse ansprechen und einheitlich behandeln, etwa in einer gemeinsamen Liste oder als Parameter. Der aufrufende Programmteil muss den konkreten Typ nicht kennen.","typ":"absatz"},{"text":"1 Punkt: Welche Implementierung ausgeführt wird, entscheidet sich erst zur Laufzeit anhand des tatsächlichen Objekts (späte Bindung, late binding). Zur Übersetzungszeit ist diese Entscheidung nicht möglich, weil dort nur der deklarierte Typ bekannt ist.","typ":"absatz"},{"text":"1 Punkt: Bezug zur Ausgangssituation — die in ermittleZuschlag und ermittleLiefertag wiederholte Auswahlstruktur über die Instanzvariable art entfällt. Jede Sendungsart trägt ihr Verhalten in einer eigenen Klasse. Eine weitere Art wie Gefahrgut wird als zusätzliche abgeleitete Klasse ergänzt, ohne dass bestehende Methoden oder aufrufender Programmcode geändert werden müssen (verbesserte Wartbarkeit und Erweiterbarkeit).","typ":"absatz"},{"text":"Hinweis für die Korrektur: Die Begriffe späte Bindung, dynamische Bindung oder late binding sind gleichwertig. Erwähnt eine Antwort statt der Vererbung eine gemeinsame Schnittstelle (Interface), ist dies ebenso zu werten. Wird nur das Überladen von Methoden (gleicher Name, verschiedene Parameterlisten) beschrieben, ist höchstens 1 Punkt zu vergeben, da hierbei bereits zur Übersetzungszeit entschieden wird.","typ":"absatz"}],"operator_id":"operator.erlaeutern","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":4,"punkterahmen":{"max":4,"min":4},"quellen":["ap2-fiae-2023-sommer-ae1-a02-b-ba"]},{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"Ausgangssituation","typ":"ueberschrift"},{"text":"Die Stadtwerke Ahrenbeck versorgen 12.000 Haushalte mit Strom. Ihre Abrechnungssoftware verwaltet drei Zählerarten:","typ":"absatz"},{"text":"– Drehstromzähler: 7,90 EUR Grundpreis je Monat, Ablesung jährlich\n– moderne Messeinrichtung: 9,40 EUR Grundpreis je Monat, Ablesung jährlich\n– intelligentes Messsystem: 14,20 EUR Grundpreis je Monat, Ablesung täglich","typ":"absatz"},{"text":"Die Bauart wird als Zeichenkette gespeichert und in jeder Methode erneut abgefragt.","typ":"absatz"},{"text":"Zaehler\n- bauart : String\n+ Zaehler(bauart : String)\n+ grundpreisMonat() : Double\n+ ableseintervallTage() : Integer","typ":"absatz"},{"text":"Für das kommende Jahr ist eine vierte Zählerart angekündigt. Ihr Ausbilder empfiehlt, die wiederholten Abfragen aufzulösen.","typ":"absatz"},{"text":"a) Erläutern Sie, was in der objektorientierten Programmierung unter Polymorphie zu verstehen ist.","typ":"absatz"},{"text":"4 Punkte","typ":"punktzeile"},{"text":"Hinweis: Beziehen Sie die Begriffe Vererbung und späte Bindung ein. Gehen Sie dabei auch auf die Folgen für die Abrechnungssoftware der Stadtwerke ein.","typ":"absatz"}],"beispiel_id":"bsp-polymorphie-erlaeutern-freitextantwort-02","freigabeart":"maschinell","loesung":[{"text":"a) 4 Punkte","typ":"ueberschrift"},{"text":"Unter Polymorphie versteht man, dass Objekte verschiedener Klassen auf denselben Methodenaufruf hin jeweils ihr eigenes Verhalten zeigen, obwohl sie über einen gemeinsamen Typ angesprochen werden.","typ":"absatz"},{"text":"Bewertung (je 1 Punkt, insgesamt 4 Punkte):","typ":"ueberschrift"},{"text":"1 Punkt: Grundlage ist die Vererbung. Aus einer gemeinsamen Basisklasse Zaehler werden die einzelnen Bauarten abgeleitet; die dort deklarierten Methoden grundpreisMonat und ableseintervallTage werden in jeder abgeleiteten Klasse überschrieben. Ist in der Basisklasse kein sinnvolles Verhalten angebbar, wird sie abstrakt deklariert.","typ":"absatz"},{"text":"1 Punkt: Eine Variable oder Sammlung vom Typ der Basisklasse kann Objekte aller abgeleiteten Klassen aufnehmen. Die Abrechnung arbeitet damit gegen den gemeinsamen Typ und kennt die einzelnen Bauarten nicht.","typ":"absatz"},{"text":"1 Punkt: Späte Bindung — die Zuordnung des Aufrufs zur konkreten Implementierung erfolgt erst zur Laufzeit über das tatsächlich vorliegende Objekt. Beim Übersetzen steht noch nicht fest, welche Bauart an einer Stelle verarbeitet wird.","typ":"absatz"},{"text":"1 Punkt: Folge für die Software der Stadtwerke — die in beiden Methoden wiederholte Abfrage der Zeichenkette bauart entfällt und damit auch die Gefahr, sie bei einer Änderung nur an einer Stelle zu pflegen. Die angekündigte vierte Zählerart wird durch Ableiten einer weiteren Klasse ergänzt; bestehender Code bleibt unverändert.","typ":"absatz"},{"text":"Hinweis für die Korrektur: Dynamische Bindung und late binding gelten als gleichwertige Bezeichnungen. Eine Lösung über ein Interface statt über eine abstrakte Basisklasse ist gleichwertig zu bewerten. Der bloße Hinweis „Methoden heißen gleich\" ohne Bezug zum Laufzeitverhalten erreicht die Punkte für die späte Bindung nicht.","typ":"absatz"}],"operator_id":"operator.erlaeutern","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":4,"punkterahmen":{"max":4,"min":4},"quellen":["ap2-fiae-2023-sommer-ae1-a02-b-ba"]},{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"Ausgangssituation","typ":"ueberschrift"},{"text":"Die Mediathek Talheim verleiht Romane, Hörbücher und Konsolenspiele. Die Ausleihverwaltung wird neu programmiert.","typ":"absatz"},{"text":"– Ein Roman ist 28 Tage entleihbar und zweimal verlängerbar.\n– Ein Hörbuch ist 14 Tage entleihbar und einmal verlängerbar.\n– Ein Konsolenspiel ist 7 Tage entleihbar und nicht verlängerbar.","typ":"absatz"},{"text":"Die Gattung liegt als Instanzvariable vor; jede Methode prüft sie mit einer eigenen Auswahlstruktur ab.","typ":"absatz"},{"text":"Medium\n- gattung : String\n+ Medium(gattung : String)\n+ leihfristTage() : Integer\n+ maxVerlaengerungen() : Integer","typ":"absatz"},{"text":"Ab Herbst werden zusätzlich Musikinstrumente verliehen. Eine Kollegin aus der Anwendungsentwicklung rät Ihnen zu Polymorphie.","typ":"absatz"},{"text":"a) Erläutern Sie den Begriff Polymorphie und seinen Nutzen für die dargestellte Ausleihverwaltung.","typ":"absatz"},{"text":"4 Punkte","typ":"punktzeile"}],"beispiel_id":"bsp-polymorphie-erlaeutern-freitextantwort-03","freigabeart":"maschinell","loesung":[{"text":"a) 4 Punkte","typ":"ueberschrift"},{"text":"Polymorphie bedeutet, dass derselbe Methodenaufruf auf Objekten verschiedener Klassen einer Vererbungshierarchie unterschiedliches Verhalten auslöst, weil jede Klasse die geerbte Methode auf ihre Weise umsetzt.","typ":"absatz"},{"text":"Bewertung (je 1 Punkt, insgesamt 4 Punkte):","typ":"ueberschrift"},{"text":"1 Punkt: Aus einer gemeinsamen Basisklasse Medium werden Roman, Hoerbuch und Konsolenspiel abgeleitet. Jede dieser Klassen überschreibt leihfristTage und maxVerlaengerungen mit ihren eigenen Werten; die Basisklasse gibt nur die Signatur vor und kann abstrakt sein.","typ":"absatz"},{"text":"1 Punkt: Alle Ausleihobjekte lassen sich über den Typ Medium einheitlich verwalten, etwa in einer Liste der entliehenen Titel. Die Ausleihverwaltung ruft leihfristTage auf, ohne die Gattung des einzelnen Objekts abzufragen.","typ":"absatz"},{"text":"1 Punkt: Erst zur Laufzeit wird anhand des tatsächlichen Objekts bestimmt, welche der gleichnamigen Methoden ausgeführt wird (späte Bindung). Der Übersetzer kennt an dieser Stelle nur den Typ Medium.","typ":"absatz"},{"text":"1 Punkt: Nutzen für die dargestellte Situation — die in jeder Methode erneut geprüfte Instanzvariable gattung entfällt, wodurch der Code kürzer und weniger fehleranfällig wird. Die ab Herbst geplanten Musikinstrumente werden als weitere abgeleitete Klasse aufgenommen, ohne bestehende Klassen oder die Ausleihverwaltung anzupassen. Fachlich falsche Kombinationen wie ein Roman ohne Leihfrist können nicht mehr durch einen vergessenen Zweig entstehen.","typ":"absatz"},{"text":"Hinweis für die Korrektur: Für den vierten Punkt genügt einer der genannten Nutzenaspekte (Wegfall der Auswahlstrukturen, leichtere Erweiterbarkeit, bessere Wartbarkeit), sofern er auf die Mediathek bezogen ist. Eine rein allgemeine Nutzenformel ohne Bezug zur Ausleihverwaltung erhält an dieser Stelle keinen Punkt.","typ":"absatz"}],"operator_id":"operator.erlaeutern","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":4,"punkterahmen":{"max":4,"min":4},"quellen":["ap2-fiae-2023-sommer-ae1-a02-b-ba"]},{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"Ausgangssituation","typ":"ueberschrift"},{"text":"Die Rheinkiesel Entsorgung eG in Neuwied leert die Sammelbehälter mehrerer Gewerbeparks. Sie absolvieren Ihre Ausbildung in der Softwareabteilung und erweitern dort die Tourenplanung.","typ":"absatz"},{"text":"Für die Behälter ist folgendes Klassenmodell umgesetzt:","typ":"ueberschrift"},{"text":"Tourenplan\n- behaelter : List<Behaelter>\n+ heutigeAbholungen() : List<Behaelter>","typ":"absatz"},{"text":"Behaelter {abstrakt}\n- standort : String\n+ istAbholreif() : Boolean {abstrakt}","typ":"code"},{"text":"PapierBehaelter erbt von Behaelter\n- fuellstandProzent : Integer\n+ istAbholreif() : Boolean","typ":"absatz"},{"text":"BioBehaelter erbt von Behaelter\n- letzteLeerung : Date\n+ istAbholreif() : Boolean","typ":"absatz"},{"text":"Die Methode heutigeAbholungen durchläuft die Liste und ruft für jedes Element istAbholreif auf. Welche der beiden Implementierungen dabei tatsächlich abgearbeitet wird, steht erst während der Programmausführung fest.","typ":"absatz"},{"text":"Nennen und erklären Sie den Mechanismus, der dieses Verhalten ermöglicht.","typ":"absatz"},{"text":"4 Punkte","typ":"punktzeile"}],"beispiel_id":"bsp-polymorphie-nennen-freitextantwort-01","freigabeart":"maschinell","loesung":[{"text":"Erwartungshorizont","typ":"ueberschrift"},{"text":"4 Punkte","typ":"punktzeile"},{"text":"Hinweis: Andere, ebenfalls fachlich richtige Formulierungen sind möglich.","typ":"absatz"},{"text":"Nennung (1 Punkt)","typ":"ueberschrift"},{"text":"Der Mechanismus ist die späte Bindung (dynamische Bindung, late binding) als Bestandteil der Polymorphie. Ebenfalls anerkannt werden \"dynamisches Binden\" oder \"Laufzeitpolymorphie\" in Verbindung mit einer tragfähigen Erklärung.","typ":"absatz"},{"text":"Erklärung (3 Punkte, je 1 Punkt für die folgenden Aussagen)","typ":"ueberschrift"},{"text":"1. Die Variable behaelter ist über den Typ der Oberklasse Behaelter\n   deklariert; tatsächlich enthält die Liste Objekte der Unterklassen\n   PapierBehaelter und BioBehaelter.","typ":"code"},{"text":"2. Beim Aufruf von istAbholreif wird nicht der deklarierte Typ ausgewertet,\n   sondern der konkrete Typ des Objekts, für das der Aufruf erfolgt. Ausgeführt\n   wird die überschreibende Methode dieser Unterklasse.","typ":"code"},{"text":"3. Diese Zuordnung kann der Compiler nicht vornehmen, weil zur Übersetzungszeit\n   nicht feststeht, welche Objekte die Liste aufnimmt. Sie erfolgt deshalb erst\n   zur Laufzeit beim jeweiligen Aufruf.","typ":"code"},{"text":"Bewertungshinweise","typ":"ueberschrift"},{"text":"- Wird nur der Begriff genannt, ohne dass eine der drei Aussagen ausgeführt wird, ist ausschließlich der Nennungspunkt zu vergeben.\n- Trägt eine Erklärung die Sache fachlich richtig, ohne den Fachbegriff zu nennen, sind die erreichten Erklärungspunkte zu vergeben.\n- Die bloße Nennung von \"Vererbung\" oder \"Überschreiben\" genügt für den Nennungspunkt nicht, da diese den Zeitpunkt der Auswahl nicht bezeichnen.","typ":"absatz"}],"operator_id":"operator.nennen","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":4,"punkterahmen":{"max":4,"min":4},"quellen":["ap2-fiae-2026-sommer-ae2-a02-b-bb"]},{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"Ausgangssituation","typ":"ueberschrift"},{"text":"Das Kammertheater Talwiese in Bamberg wickelt seinen Kartenverkauf über einen eigenen Webshop ab. Als Fachinformatikerin bzw. Fachinformatiker der hauseigenen IT betreuen Sie das Modul für die Preisermittlung.","typ":"absatz"},{"text":"Vorgesehen ist folgendes Klassenmodell:","typ":"ueberschrift"},{"text":"Warenkorb\n- posten : List<Vorstellung>\n+ gesamtpreis() : Double","typ":"absatz"},{"text":"Vorstellung {abstrakt}\n- titel : String\n- grundpreis : Double\n+ endpreis() : Double {abstrakt}","typ":"code"},{"text":"Abendvorstellung erbt von Vorstellung\n- reihe : Integer\n+ endpreis() : Double","typ":"absatz"},{"text":"Schulvorstellung erbt von Vorstellung\n- klassenstufe : Integer\n+ endpreis() : Double","typ":"absatz"},{"text":"Die Methode gesamtpreis summiert über alle Posten die Rückgabewerte von endpreis. Der Compiler kann nicht bestimmen, welche der beiden Implementierungen jeweils an die Reihe kommt; das klärt sich erst beim Ausführen des Programms.","typ":"absatz"},{"text":"Nennen und erklären Sie das Konzept, auf dem dieses Verhalten beruht.","typ":"absatz"},{"text":"4 Punkte","typ":"punktzeile"}],"beispiel_id":"bsp-polymorphie-nennen-freitextantwort-02","freigabeart":"maschinell","loesung":[{"text":"Erwartungshorizont","typ":"ueberschrift"},{"text":"4 Punkte","typ":"punktzeile"},{"text":"Hinweis: Andere, ebenfalls fachlich richtige Formulierungen sind möglich.","typ":"absatz"},{"text":"Nennung (1 Punkt)","typ":"ueberschrift"},{"text":"Das Konzept ist die späte Bindung (dynamische Bindung, late binding) als Ausprägung der Polymorphie. Ebenfalls anerkannt werden \"dynamisches Binden\" oder \"Laufzeitpolymorphie\" in Verbindung mit einer tragfähigen Erklärung.","typ":"absatz"},{"text":"Erklärung (3 Punkte, je 1 Punkt für die folgenden Aussagen)","typ":"ueberschrift"},{"text":"1. Die Liste posten ist über den Typ der abstrakten Oberklasse Vorstellung\n   deklariert; abgelegt sind darin Objekte der Unterklassen Abendvorstellung\n   und Schulvorstellung.","typ":"code"},{"text":"2. Welche Fassung von endpreis abläuft, richtet sich nach dem konkreten Typ des\n   jeweiligen Objekts, nicht nach dem deklarierten Typ der Liste. Aufgerufen\n   wird die überschreibende Methode der betreffenden Unterklasse.","typ":"code"},{"text":"3. Zur Übersetzungszeit ist der Inhalt des Warenkorbs unbekannt, daher kann der\n   Compiler den Aufruf keiner Implementierung fest zuordnen; die Auswahl fällt\n   erst zur Laufzeit.","typ":"code"},{"text":"Bewertungshinweise","typ":"ueberschrift"},{"text":"- Wird nur der Begriff genannt, ohne dass eine der drei Aussagen ausgeführt wird, ist ausschließlich der Nennungspunkt zu vergeben.\n- Trägt eine Erklärung die Sache fachlich richtig, ohne den Fachbegriff zu nennen, sind die erreichten Erklärungspunkte zu vergeben.\n- Das Überladen von Methoden ist hier nicht gemeint und darf nicht gewertet werden, da die Auswahl bereits beim Übersetzen feststünde.","typ":"absatz"}],"operator_id":"operator.nennen","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":4,"punkterahmen":{"max":4,"min":4},"quellen":["ap2-fiae-2026-sommer-ae2-a02-b-bb"]},{"artefakt_id":"artefakt.freitextantwort","aufgabe":[{"text":"Ausgangssituation","typ":"ueberschrift"},{"text":"Die Nordhang Nutzfahrzeugtechnik GmbH in Flensburg wartet Kühlfahrzeuge für Speditionen. Sie arbeiten in der IT des Betriebs und erweitern die Zeitplanung der Werkstattaufträge.","typ":"absatz"},{"text":"Umgesetzt ist folgendes Klassenmodell:","typ":"ueberschrift"},{"text":"Auftragsbuch\n- positionen : List<Arbeitsposition>\n+ gesamtdauerInMinuten() : Integer","typ":"absatz"},{"text":"Arbeitsposition {abstrakt}\n- bezeichnung : String\n+ dauerInMinuten() : Integer {abstrakt}","typ":"code"},{"text":"Pruefposition erbt von Arbeitsposition\n- pruefpunkte : Integer\n+ dauerInMinuten() : Integer","typ":"absatz"},{"text":"Austauschposition erbt von Arbeitsposition\n- bauteilnummer : String\n+ dauerInMinuten() : Integer","typ":"absatz"},{"text":"Die Methode gesamtdauerInMinuten addiert für jede Position den Wert von dauerInMinuten. Ob dabei die Fassung aus Pruefposition oder die aus Austauschposition greift, zeigt sich erst beim Ablauf des Programms.","typ":"absatz"},{"text":"Nennen Sie den Mechanismus, der dies ermöglicht, und erklären Sie seine\nWirkungsweise.\n4 Punkte","typ":"absatz"}],"beispiel_id":"bsp-polymorphie-nennen-freitextantwort-03","freigabeart":"maschinell","loesung":[{"text":"Erwartungshorizont","typ":"ueberschrift"},{"text":"4 Punkte","typ":"punktzeile"},{"text":"Hinweis: Andere, ebenfalls fachlich richtige Formulierungen sind möglich.","typ":"absatz"},{"text":"Nennung (1 Punkt)","typ":"ueberschrift"},{"text":"Der Mechanismus ist die späte Bindung (dynamische Bindung, late binding) als Bestandteil der Polymorphie. Ebenfalls anerkannt werden \"dynamisches Binden\" oder \"Laufzeitpolymorphie\" in Verbindung mit einer tragfähigen Erklärung.","typ":"absatz"},{"text":"Erklärung (3 Punkte, je 1 Punkt für die folgenden Aussagen)","typ":"ueberschrift"},{"text":"1. Die Liste positionen ist über den Typ der abstrakten Oberklasse\n   Arbeitsposition deklariert; die einzelnen Einträge sind Objekte der\n   Unterklassen Pruefposition und Austauschposition.","typ":"code"},{"text":"2. Der Aufruf von dauerInMinuten wird an die Methode gebunden, die zum\n   tatsächlichen Typ des angesprochenen Objekts gehört; das ist die jeweils\n   überschreibende Methode der Unterklasse.","typ":"code"},{"text":"3. Diese Bindung entsteht erst beim Ausführen des Programms, weil beim\n   Übersetzen offen ist, welche Positionen das Auftragsbuch führt.","typ":"code"},{"text":"Bewertungshinweise","typ":"ueberschrift"},{"text":"- Wird nur der Begriff genannt, ohne dass eine der drei Aussagen ausgeführt wird, ist ausschließlich der Nennungspunkt zu vergeben.\n- Trägt eine Erklärung die Sache fachlich richtig, ohne den Fachbegriff zu nennen, sind die erreichten Erklärungspunkte zu vergeben.\n- Wird die Auswahl fälschlich dem Übersetzungsvorgang zugeschrieben, ist der dritte Erklärungspunkt nicht zu vergeben.","typ":"absatz"}],"operator_id":"operator.nennen","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":4,"punkterahmen":{"max":4,"min":4},"quellen":["ap2-fiae-2026-sommer-ae2-a02-b-bb"]},{"artefakt_id":"artefakt.diagramm.uml.klassendiagramm","aufgabe":[{"text":"Ausgangssituation","typ":"ueberschrift"},{"text":"Die Nordfracht Kurierdienst GmbH in Flensburg beliefert Apotheken und Arztpraxen im nördlichen Schleswig-Holstein. Sie absolvieren Ihre Ausbildung in der Anwendungsentwicklung des Unternehmens und lösen dort die veraltete Versandsoftware ab.","typ":"absatz"},{"text":"Für den Versand sind drei Arten vorgesehen.","typ":"absatz"},{"text":"– „BASIS“-Sendungen werden zum Grundentgelt befördert und samstags nicht zugestellt.\n– „SCHNELL“-Sendungen kosten das 1,4-Fache des Grundentgelts und werden samstags zugestellt, sofern kein Feiertag vorliegt.\n– „NACHT“-Sendungen kosten das 2,2-Fache und werden auch samstags zugestellt.","typ":"absatz"},{"text":"Ein erster Entwurf bildet dieses Verhalten über Fallunterscheidungen innerhalb einer einzigen Klasse ab.","typ":"absatz"},{"text":"Sendung\n- art : String\n+ Sendung(art : String)\n+ istSamstagZustellbar(istFeiertag : Boolean) : Boolean\n+ berechneEntgelt(grundEntgelt : Double) : Double","typ":"absatz"},{"text":"istSamstagZustellbar(istFeiertag : Boolean):\nart „BASIS“ → Rückgabe false\nart „SCHNELL“ → Rückgabe nicht istFeiertag\nart „NACHT“ → Rückgabe true","typ":"absatz"},{"text":"berechneEntgelt(grundEntgelt : Double):\nart „BASIS“ → Rückgabe grundEntgelt\nart „SCHNELL“ → Rückgabe grundEntgelt*1.4\nart „NACHT“ → Rückgabe grundEntgelt*2.2","typ":"absatz"},{"text":"Weitere Versandarten sind bereits angekündigt. Ihre Teamleitung verlangt deshalb einen polymorphen Entwurf ohne diese Fallunterscheidungen.","typ":"absatz"},{"text":"Erstellen Sie ein UML-Klassendiagramm für diesen Entwurf.","typ":"absatz"},{"text":"9 Punkte","typ":"punktzeile"},{"text":"Hinweise:\n– Die Klasse Sendung wird abstrakt.\n– Das Attribut art entfällt.\n– Je Versandart entsteht eine erbende Klasse, die beide abstrakten Methoden überschreibt.\n– Sendung erhält zusätzlich eine statische Fabrikmethode erzeugeSendung, die zur übergebenen Versandart das passende Objekt liefert.","typ":"absatz"}],"aufgabe_diagramm":{"beziehungen":[],"klassen":[{"art":"klasse","attribute":[{"name":"art","sicht":"-","typ":"String"}],"id":"V1","methoden":[{"name":"Sendung","parameter":[{"name":"art","typ":"String"}],"sicht":"+"},{"name":"istSamstagZustellbar","parameter":[{"name":"istFeiertag","typ":"Boolean"}],"rueckgabe":"Boolean","sicht":"+"},{"name":"berechneEntgelt","parameter":[{"name":"grundEntgelt","typ":"Double"}],"rueckgabe":"Double","sicht":"+"}],"name":"Sendung"}],"modus":"uml_klasse"},"beispiel_id":"bsp-polymorphie-erstellen-diagramm-uml-klassendiagramm-01","freigabeart":"maschinell","loesung":[{"text":"Erwartungshorizont","typ":"absatz"},{"text":"9 Punkte","typ":"punktzeile"},{"text":"UML-Klassendiagramm:","typ":"ueberschrift"},{"text":"Sendung {abstract}\n+ istSamstagZustellbar(istFeiertag : Boolean) : Boolean {abstract}\n+ berechneEntgelt(grundEntgelt : Double) : Double {abstract}\n+ erzeugeSendung(art : String) : Sendung {static}","typ":"code"},{"text":"BasisSendung\n+ istSamstagZustellbar(istFeiertag : Boolean) : Boolean\n+ berechneEntgelt(grundEntgelt : Double) : Double","typ":"absatz"},{"text":"SchnellSendung\n+ istSamstagZustellbar(istFeiertag : Boolean) : Boolean\n+ berechneEntgelt(grundEntgelt : Double) : Double","typ":"absatz"},{"text":"NachtSendung\n+ istSamstagZustellbar(istFeiertag : Boolean) : Boolean\n+ berechneEntgelt(grundEntgelt : Double) : Double","typ":"absatz"},{"text":"Beziehungen:\nBasisSendung, SchnellSendung und NachtSendung erben von Sendung (Generalisierung,\nPfeil mit geschlossener, nicht ausgefüllter Spitze zur Oberklasse).","typ":"absatz"},{"text":"Punkteverteilung:","typ":"ueberschrift"},{"typ":"punkteverteilung","zeilen":[{"punkte":"2 Punkte","text":"Klasse Sendung ist als abstrakt gekennzeichnet und enthält beide Methoden als abstrakte Operationen ohne Implementierung. Das Attribut art und der Konstruktor mit Typparameter sind entfallen."},{"punkte":"3 Punkte","text":"Je 1 Punkt für die drei abgeleiteten Klassen, eine je Versandart."},{"punkte":"1 Punkt","text":"Alle drei Unterklassen sind über eine Generalisierung mit Sendung verbunden."},{"punkte":"1 Punkt","text":"Beide Methoden werden in jeder Unterklasse mit vollständiger, unveränderter Signatur und öffentlicher Sichtbarkeit überschrieben."},{"punkte":"2 Punkte","text":"Die Fabrikmethode erzeugeSendung ist in Sendung modelliert, als statisch gekennzeichnet (Unterstreichung oder {static}), besitzt den Parameter art : String und liefert den Typ Sendung zurück."}]},{"text":"Hinweise zur Bewertung:","typ":"ueberschrift"},{"text":"Abweichende, ebenfalls fachlich korrekte Lösungen sind möglich. Die Bezeichner der Unterklassen sind frei, solange die Zuordnung zu den drei Versandarten eindeutig bleibt. Eine Modellierung über ein Interface anstelle der abstrakten Klasse ist zulässig, wenn die Fabrikmethode dann an anderer, benannter Stelle liegt; die volle Punktzahl setzt in diesem Fall ebenfalls voraus, dass keine Fallunterscheidung nach Versandart in den fachlichen Methoden verbleibt.","typ":"absatz"},{"text":"Wird die Fabrikmethode nicht als statisch gekennzeichnet, ist von den 2 Punkten 1 Punkt abzuziehen. Bleibt das Attribut art erhalten, ist von den 2 Punkten für die Oberklasse 1 Punkt abzuziehen, da die aufzulösende Redundanz fortbesteht. Rückgabetypen und Sichtbarkeiten müssen für den Signaturpunkt durchgängig angegeben sein; ein einzelner Formfehler bleibt ohne Abzug.","typ":"absatz"}],"loesung_diagramm":{"beziehungen":[{"a":"BasisSendung","art":"vererbung","b":"Sendung"},{"a":"SchnellSendung","art":"vererbung","b":"Sendung"},{"a":"NachtSendung","art":"vererbung","b":"Sendung"}],"klassen":[{"art":"abstrakt","attribute":[],"id":"K1","methoden":[{"abstrakt":true,"name":"istSamstagZustellbar","parameter":[{"name":"istFeiertag","typ":"Boolean"}],"rueckgabe":"Boolean","sicht":"+"},{"abstrakt":true,"name":"berechneEntgelt","parameter":[{"name":"grundEntgelt","typ":"Double"}],"rueckgabe":"Double","sicht":"+"},{"name":"erzeugeSendung","parameter":[{"name":"art","typ":"String"}],"rueckgabe":"Sendung","sicht":"+","statisch":true}],"name":"Sendung"},{"art":"klasse","attribute":[],"id":"K2","methoden":[{"name":"istSamstagZustellbar","parameter":[{"name":"istFeiertag","typ":"Boolean"}],"rueckgabe":"Boolean","sicht":"+"},{"name":"berechneEntgelt","parameter":[{"name":"grundEntgelt","typ":"Double"}],"rueckgabe":"Double","sicht":"+"}],"name":"BasisSendung"},{"art":"klasse","attribute":[],"id":"K3","methoden":[{"name":"istSamstagZustellbar","parameter":[{"name":"istFeiertag","typ":"Boolean"}],"rueckgabe":"Boolean","sicht":"+"},{"name":"berechneEntgelt","parameter":[{"name":"grundEntgelt","typ":"Double"}],"rueckgabe":"Double","sicht":"+"}],"name":"SchnellSendung"},{"art":"klasse","attribute":[],"id":"K4","methoden":[{"name":"istSamstagZustellbar","parameter":[{"name":"istFeiertag","typ":"Boolean"}],"rueckgabe":"Boolean","sicht":"+"},{"name":"berechneEntgelt","parameter":[{"name":"grundEntgelt","typ":"Double"}],"rueckgabe":"Double","sicht":"+"}],"name":"NachtSendung"}],"modus":"uml_klasse"},"operator_id":"operator.erstellen","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":9,"punkterahmen":{"max":9,"min":9},"quellen":["ap2-fiae-2023-sommer-ae1-a02-b-bb"]},{"artefakt_id":"artefakt.diagramm.uml.klassendiagramm","aufgabe":[{"text":"Ausgangssituation","typ":"ueberschrift"},{"text":"Die Kreismediathek Sankt Wendel verleiht an ihren vier Standorten gedruckte und digitale Medien. Sie absolvieren Ihre Ausbildung im IT-Team des Kreises und erneuern die Ausleihverwaltung der Mediathek.","typ":"absatz"},{"text":"Der Bestand ist in drei Kategorien gegliedert.","typ":"absatz"},{"text":"– „BUCH“ behält die Grundleihfrist und darf verlängert werden, solange keine Vormerkung vorliegt.\n– „HOERSPIEL“ ist stets verlängerbar, hat aber eine um sieben Tage verkürzte Frist.\n– „KONSOLENSPIEL“ ist wegen der hohen Nachfrage nie verlängerbar und wird einheitlich für drei Tage ausgeliehen.","typ":"absatz"},{"text":"Ein erster Entwurf bildet dieses Verhalten über Fallunterscheidungen innerhalb einer einzigen Klasse ab.","typ":"absatz"},{"text":"Medium\n- kategorie : String\n+ Medium(kategorie : String)\n+ istVerlaengerbar(istVorgemerkt : Boolean) : Boolean\n+ ermittleLeihfrist(grundFrist : Integer) : Integer","typ":"absatz"},{"text":"istVerlaengerbar(istVorgemerkt : Boolean):\nkategorie „BUCH“ → Rückgabe nicht istVorgemerkt\nkategorie „HOERSPIEL“ → Rückgabe true\nkategorie „KONSOLENSPIEL“ → Rückgabe false","typ":"absatz"},{"text":"ermittleLeihfrist(grundFrist : Integer):\nkategorie „BUCH“ → Rückgabe grundFrist\nkategorie „HOERSPIEL“ → Rückgabe grundFrist-7\nkategorie „KONSOLENSPIEL“ → Rückgabe 3","typ":"absatz"},{"text":"Für das kommende Jahr sind weitere Kategorien geplant. Der Kreis verlangt deshalb einen polymorphen Entwurf ohne diese Fallunterscheidungen.","typ":"absatz"},{"text":"Erstellen Sie ein UML-Klassendiagramm für diesen Entwurf.","typ":"absatz"},{"text":"9 Punkte","typ":"punktzeile"},{"text":"Hinweise:\n– Die Klasse Medium wird abstrakt.\n– Das Attribut kategorie entfällt.\n– Je Kategorie entsteht eine erbende Klasse, die beide abstrakten Methoden überschreibt.\n– Medium erhält zusätzlich eine statische Fabrikmethode erzeugeMedium, die zur übergebenen Kategorie das passende Objekt liefert.","typ":"absatz"}],"aufgabe_diagramm":{"beziehungen":[],"klassen":[{"art":"klasse","attribute":[{"name":"kategorie","sicht":"-","typ":"String"}],"id":"V1","methoden":[{"name":"Medium","parameter":[{"name":"kategorie","typ":"String"}],"sicht":"+"},{"name":"istVerlaengerbar","parameter":[{"name":"istVorgemerkt","typ":"Boolean"}],"rueckgabe":"Boolean","sicht":"+"},{"name":"ermittleLeihfrist","parameter":[{"name":"grundFrist","typ":"Integer"}],"rueckgabe":"Integer","sicht":"+"}],"name":"Medium"}],"modus":"uml_klasse"},"beispiel_id":"bsp-polymorphie-erstellen-diagramm-uml-klassendiagramm-02","freigabeart":"maschinell","loesung":[{"text":"Erwartungshorizont","typ":"absatz"},{"text":"9 Punkte","typ":"punktzeile"},{"text":"UML-Klassendiagramm:","typ":"ueberschrift"},{"text":"Medium {abstract}\n+ istVerlaengerbar(istVorgemerkt : Boolean) : Boolean {abstract}\n+ ermittleLeihfrist(grundFrist : Integer) : Integer {abstract}\n+ erzeugeMedium(kategorie : String) : Medium {static}","typ":"code"},{"text":"Buch\n+ istVerlaengerbar(istVorgemerkt : Boolean) : Boolean\n+ ermittleLeihfrist(grundFrist : Integer) : Integer","typ":"absatz"},{"text":"Hoerspiel\n+ istVerlaengerbar(istVorgemerkt : Boolean) : Boolean\n+ ermittleLeihfrist(grundFrist : Integer) : Integer","typ":"absatz"},{"text":"Konsolenspiel\n+ istVerlaengerbar(istVorgemerkt : Boolean) : Boolean\n+ ermittleLeihfrist(grundFrist : Integer) : Integer","typ":"absatz"},{"text":"Beziehungen:\nBuch, Hoerspiel und Konsolenspiel erben von Medium (Generalisierung, Pfeil mit\ngeschlossener, nicht ausgefüllter Spitze zur Oberklasse).","typ":"absatz"},{"text":"Punkteverteilung:","typ":"ueberschrift"},{"typ":"punkteverteilung","zeilen":[{"punkte":"2 Punkte","text":"Klasse Medium ist als abstrakt gekennzeichnet und enthält beide Methoden als abstrakte Operationen ohne Implementierung. Das Attribut kategorie und der Konstruktor mit Kategorieparameter sind entfallen."},{"punkte":"3 Punkte","text":"Je 1 Punkt für die drei abgeleiteten Klassen, eine je Kategorie."},{"punkte":"1 Punkt","text":"Alle drei Unterklassen sind über eine Generalisierung mit Medium verbunden."},{"punkte":"1 Punkt","text":"Beide Methoden werden in jeder Unterklasse mit vollständiger, unveränderter Signatur und öffentlicher Sichtbarkeit überschrieben."},{"punkte":"2 Punkte","text":"Die Fabrikmethode erzeugeMedium ist in Medium modelliert, als statisch gekennzeichnet (Unterstreichung oder {static}), besitzt den Parameter kategorie : String und liefert den Typ Medium zurück."}]},{"text":"Hinweise zur Bewertung:","typ":"ueberschrift"},{"text":"Abweichende, ebenfalls fachlich korrekte Lösungen sind möglich. Die Bezeichner der Unterklassen sind frei, solange die Zuordnung zu den drei Kategorien eindeutig bleibt. Dass Konsolenspiel den Parameter grundFrist in seiner Implementierung nicht auswertet, ist kein Modellierungsfehler; die Signatur bleibt in allen Unterklassen gleich, weil das Überschreiben sonst nicht möglich wäre. Zusätzliche Attribute in den Unterklassen sind zulässig, führen aber nicht zu weiteren Punkten.","typ":"absatz"},{"text":"Wird die Fabrikmethode nicht als statisch gekennzeichnet, ist von den 2 Punkten 1 Punkt abzuziehen. Bleibt das Attribut kategorie erhalten, ist von den 2 Punkten für die Oberklasse 1 Punkt abzuziehen, da die aufzulösende Redundanz fortbesteht. Verbleiben Fallunterscheidungen nach Kategorie in den fachlichen Methoden, wird der Signaturpunkt nicht vergeben.","typ":"absatz"}],"loesung_diagramm":{"beziehungen":[{"a":"Buch","art":"vererbung","b":"Medium"},{"a":"Hoerspiel","art":"vererbung","b":"Medium"},{"a":"Konsolenspiel","art":"vererbung","b":"Medium"}],"klassen":[{"art":"abstrakt","attribute":[],"id":"K1","methoden":[{"abstrakt":true,"name":"istVerlaengerbar","parameter":[{"name":"istVorgemerkt","typ":"Boolean"}],"rueckgabe":"Boolean","sicht":"+"},{"abstrakt":true,"name":"ermittleLeihfrist","parameter":[{"name":"grundFrist","typ":"Integer"}],"rueckgabe":"Integer","sicht":"+"},{"name":"erzeugeMedium","parameter":[{"name":"kategorie","typ":"String"}],"rueckgabe":"Medium","sicht":"+","statisch":true}],"name":"Medium"},{"art":"klasse","attribute":[],"id":"K2","methoden":[{"name":"istVerlaengerbar","parameter":[{"name":"istVorgemerkt","typ":"Boolean"}],"rueckgabe":"Boolean","sicht":"+"},{"name":"ermittleLeihfrist","parameter":[{"name":"grundFrist","typ":"Integer"}],"rueckgabe":"Integer","sicht":"+"}],"name":"Buch"},{"art":"klasse","attribute":[],"id":"K3","methoden":[{"name":"istVerlaengerbar","parameter":[{"name":"istVorgemerkt","typ":"Boolean"}],"rueckgabe":"Boolean","sicht":"+"},{"name":"ermittleLeihfrist","parameter":[{"name":"grundFrist","typ":"Integer"}],"rueckgabe":"Integer","sicht":"+"}],"name":"Hoerspiel"},{"art":"klasse","attribute":[],"id":"K4","methoden":[{"name":"istVerlaengerbar","parameter":[{"name":"istVorgemerkt","typ":"Boolean"}],"rueckgabe":"Boolean","sicht":"+"},{"name":"ermittleLeihfrist","parameter":[{"name":"grundFrist","typ":"Integer"}],"rueckgabe":"Integer","sicht":"+"}],"name":"Konsolenspiel"}],"modus":"uml_klasse"},"operator_id":"operator.erstellen","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":9,"punkterahmen":{"max":9,"min":9},"quellen":["ap2-fiae-2023-sommer-ae1-a02-b-bb"]},{"artefakt_id":"artefakt.diagramm.uml.klassendiagramm","aufgabe":[{"text":"Ausgangssituation","typ":"ueberschrift"},{"text":"Die Röhrsdorfer Baustoff-Logistik GmbH beliefert von Chemnitz aus Baustellen in ganz Sachsen. Sie absolvieren Ihre Ausbildung in der IT-Abteilung und schreiben die Tourenplanung des Fuhrparks neu.","typ":"absatz"},{"text":"Der Fuhrpark umfasst drei Antriebsarten.","typ":"absatz"},{"text":"– „DIESEL“-Fahrzeuge zahlen den Grundmautsatz und dürfen nachts überhaupt nicht fahren.\n– „ERDGAS“-Fahrzeuge zahlen 75 Prozent des Grundmautsatzes und dürfen nachts außerhalb der Innenstadt fahren.\n– „ELEKTRO“-Fahrzeuge sind von der Maut befreit und dürfen nachts überall fahren.","typ":"absatz"},{"text":"Ein erster Entwurf bildet dieses Verhalten über Fallunterscheidungen innerhalb einer einzigen Klasse ab.","typ":"absatz"},{"text":"Transportfahrzeug\n- antriebsart : String\n+ Transportfahrzeug(antriebsart : String)\n+ istNachtfahrtErlaubt(istInnenstadt : Boolean) : Boolean\n+ berechneMautsatz(grundSatz : Double) : Double","typ":"absatz"},{"text":"istNachtfahrtErlaubt(istInnenstadt : Boolean):\nantriebsart „DIESEL“ → Rückgabe false\nantriebsart „ERDGAS“ → Rückgabe nicht istInnenstadt\nantriebsart „ELEKTRO“ → Rückgabe true","typ":"absatz"},{"text":"berechneMautsatz(grundSatz : Double):\nantriebsart „DIESEL“ → Rückgabe grundSatz\nantriebsart „ERDGAS“ → Rückgabe grundSatz*0.75\nantriebsart „ELEKTRO“ → Rückgabe 0.0","typ":"absatz"},{"text":"Der Zukauf wasserstoffbetriebener Fahrzeuge ist beschlossen. Die Geschäftsführung verlangt deshalb einen polymorphen Entwurf ohne diese Fallunterscheidungen.","typ":"absatz"},{"text":"Erstellen Sie ein UML-Klassendiagramm für diesen Entwurf.","typ":"absatz"},{"text":"9 Punkte","typ":"punktzeile"},{"text":"Hinweise:\n– Die Klasse Transportfahrzeug wird abstrakt.\n– Das Attribut antriebsart entfällt.\n– Je Antriebsart entsteht eine erbende Klasse, die beide abstrakten Methoden überschreibt.\n– Transportfahrzeug erhält zusätzlich eine statische Fabrikmethode erzeugeFahrzeug, die zur übergebenen Antriebsart das passende Objekt liefert.","typ":"absatz"}],"aufgabe_diagramm":{"beziehungen":[],"klassen":[{"art":"klasse","attribute":[{"name":"antriebsart","sicht":"-","typ":"String"}],"id":"V1","methoden":[{"name":"Transportfahrzeug","parameter":[{"name":"antriebsart","typ":"String"}],"sicht":"+"},{"name":"istNachtfahrtErlaubt","parameter":[{"name":"istInnenstadt","typ":"Boolean"}],"rueckgabe":"Boolean","sicht":"+"},{"name":"berechneMautsatz","parameter":[{"name":"grundSatz","typ":"Double"}],"rueckgabe":"Double","sicht":"+"}],"name":"Transportfahrzeug"}],"modus":"uml_klasse"},"beispiel_id":"bsp-polymorphie-erstellen-diagramm-uml-klassendiagramm-03","freigabeart":"maschinell","loesung":[{"text":"Erwartungshorizont","typ":"absatz"},{"text":"9 Punkte","typ":"punktzeile"},{"text":"UML-Klassendiagramm:","typ":"ueberschrift"},{"text":"Transportfahrzeug {abstract}\n+ istNachtfahrtErlaubt(istInnenstadt : Boolean) : Boolean {abstract}\n+ berechneMautsatz(grundSatz : Double) : Double {abstract}\n+ erzeugeFahrzeug(antriebsart : String) : Transportfahrzeug {static}","typ":"code"},{"text":"Dieselfahrzeug\n+ istNachtfahrtErlaubt(istInnenstadt : Boolean) : Boolean\n+ berechneMautsatz(grundSatz : Double) : Double","typ":"absatz"},{"text":"Erdgasfahrzeug\n+ istNachtfahrtErlaubt(istInnenstadt : Boolean) : Boolean\n+ berechneMautsatz(grundSatz : Double) : Double","typ":"absatz"},{"text":"Elektrofahrzeug\n+ istNachtfahrtErlaubt(istInnenstadt : Boolean) : Boolean\n+ berechneMautsatz(grundSatz : Double) : Double","typ":"absatz"},{"text":"Beziehungen:\nDieselfahrzeug, Erdgasfahrzeug und Elektrofahrzeug erben von Transportfahrzeug\n(Generalisierung, Pfeil mit geschlossener, nicht ausgefüllter Spitze zur\nOberklasse).","typ":"absatz"},{"text":"Punkteverteilung:","typ":"ueberschrift"},{"typ":"punkteverteilung","zeilen":[{"punkte":"2 Punkte","text":"Klasse Transportfahrzeug ist als abstrakt gekennzeichnet und enthält beide Methoden als abstrakte Operationen ohne Implementierung. Das Attribut antriebsart und der zugehörige Konstruktorparameter sind entfallen."},{"punkte":"3 Punkte","text":"Je 1 Punkt für die drei abgeleiteten Klassen, eine je Antriebsart."},{"punkte":"1 Punkt","text":"Alle drei Unterklassen sind über eine Generalisierung mit Transportfahrzeug verbunden."},{"punkte":"1 Punkt","text":"Beide Methoden werden in jeder Unterklasse mit vollständiger, unveränderter Signatur und öffentlicher Sichtbarkeit überschrieben."},{"punkte":"2 Punkte","text":"Die Fabrikmethode erzeugeFahrzeug ist in Transportfahrzeug modelliert, als statisch gekennzeichnet (Unterstreichung oder {static}), besitzt den Parameter antriebsart : String und liefert den Typ Transportfahrzeug zurück."}]},{"text":"Hinweise zur Bewertung:","typ":"ueberschrift"},{"text":"Abweichende, ebenfalls fachlich korrekte Lösungen sind möglich. Die Bezeichner der Unterklassen sind frei, solange die Zuordnung zu den drei Antriebsarten eindeutig bleibt. Der angekündigte Zukauf wasserstoffbetriebener Fahrzeuge muss nicht modelliert werden; wird eine vierte Unterklasse ergänzt, ist das kein Fehler und führt auch nicht zu Zusatzpunkten.","typ":"absatz"},{"text":"Wird die Fabrikmethode nicht als statisch gekennzeichnet, ist von den 2 Punkten 1 Punkt abzuziehen. Bleibt das Attribut antriebsart erhalten, ist von den 2 Punkten für die Oberklasse 1 Punkt abzuziehen, da die aufzulösende Redundanz fortbesteht. Verbleiben Fallunterscheidungen nach Antriebsart in den fachlichen Methoden, wird der Signaturpunkt nicht vergeben.","typ":"absatz"}],"loesung_diagramm":{"beziehungen":[{"a":"Dieselfahrzeug","art":"vererbung","b":"Transportfahrzeug"},{"a":"Erdgasfahrzeug","art":"vererbung","b":"Transportfahrzeug"},{"a":"Elektrofahrzeug","art":"vererbung","b":"Transportfahrzeug"}],"klassen":[{"art":"abstrakt","attribute":[],"id":"K1","methoden":[{"abstrakt":true,"name":"istNachtfahrtErlaubt","parameter":[{"name":"istInnenstadt","typ":"Boolean"}],"rueckgabe":"Boolean","sicht":"+"},{"abstrakt":true,"name":"berechneMautsatz","parameter":[{"name":"grundSatz","typ":"Double"}],"rueckgabe":"Double","sicht":"+"},{"name":"erzeugeFahrzeug","parameter":[{"name":"antriebsart","typ":"String"}],"rueckgabe":"Transportfahrzeug","sicht":"+","statisch":true}],"name":"Transportfahrzeug"},{"art":"klasse","attribute":[],"id":"K2","methoden":[{"name":"istNachtfahrtErlaubt","parameter":[{"name":"istInnenstadt","typ":"Boolean"}],"rueckgabe":"Boolean","sicht":"+"},{"name":"berechneMautsatz","parameter":[{"name":"grundSatz","typ":"Double"}],"rueckgabe":"Double","sicht":"+"}],"name":"Dieselfahrzeug"},{"art":"klasse","attribute":[],"id":"K3","methoden":[{"name":"istNachtfahrtErlaubt","parameter":[{"name":"istInnenstadt","typ":"Boolean"}],"rueckgabe":"Boolean","sicht":"+"},{"name":"berechneMautsatz","parameter":[{"name":"grundSatz","typ":"Double"}],"rueckgabe":"Double","sicht":"+"}],"name":"Erdgasfahrzeug"},{"art":"klasse","attribute":[],"id":"K4","methoden":[{"name":"istNachtfahrtErlaubt","parameter":[{"name":"istInnenstadt","typ":"Boolean"}],"rueckgabe":"Boolean","sicht":"+"},{"name":"berechneMautsatz","parameter":[{"name":"grundSatz","typ":"Double"}],"rueckgabe":"Double","sicht":"+"}],"name":"Elektrofahrzeug"}],"modus":"uml_klasse"},"operator_id":"operator.erstellen","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":9,"punkterahmen":{"max":9,"min":9},"quellen":["ap2-fiae-2023-sommer-ae1-a02-b-bb"]},{"artefakt_id":"artefakt.quellcode","aufgabe":[{"text":"Ausgangssituation","typ":"ueberschrift"},{"text":"Die Stadtmediathek Talheide stellt ihre Ausleihe auf eine eigene App um. Für die Medienarten liegt bereits ein polymorpher Entwurf vor. Hoerbuch, Konsolenspiel und Zeitschrift erben von der abstrakten Klasse Medium und überschreiben deren abstrakte Methoden.","typ":"absatz"},{"text":"Medium {abstrakt}\n- titel : String\n+ berechneMahngebuehr(tageUeberzogen : Integer) : Double {abstrakt}\n+ istVerlaengerbar(istVorgemerkt : Boolean, bisherigeVerlaengerungen : Integer) : Boolean {abstrakt}","typ":"code"},{"text":"Für Hoerbuch gilt: Je überzogenem Tag werden 0,40 EUR berechnet, höchstens jedoch 10,00 EUR. Eine Verlängerung ist möglich, solange keine Vormerkung vorliegt und noch nicht zweimal verlängert wurde.","typ":"absatz"},{"text":"Implementieren Sie in Pseudocode oder als Struktogramm die überschreibenden Methoden berechneMahngebuehr und istVerlaengerbar der Klasse Hoerbuch. 4 Punkte","typ":"absatz"},{"text":"Hinweis: Verwenden Sie die vorgegebenen Signaturen; eine Fehlerbehandlung ist nicht erforderlich.","typ":"absatz"}],"beispiel_id":"bsp-polymorphie-erstellen-quellcode-01","freigabeart":"maschinell","loesung":[{"text":"Erwartungshorizont — 4 Punkte","typ":"ueberschrift"},{"text":"Hinweis: Struktogramm und Pseudocode sind gleichwertig. Eine an eine konkrete Programmiersprache angelehnte Schreibweise wird ebenso gewertet. Das Schlüsselwort override ist für die volle Punktzahl nicht notwendig. Weitere sachlich richtige Lösungen sind möglich.","typ":"absatz"},{"text":"Musterlösung:","typ":"ueberschrift"},{"text":"public override Double berechneMahngebuehr(Integer tageUeberzogen) {\n  Double gebuehr = tageUeberzogen * 0.40\n  if (gebuehr > 10.00) {\n    gebuehr = 10.00\n  }\n  return gebuehr\n}","typ":"code"},{"text":"public override Boolean istVerlaengerbar(Boolean istVorgemerkt,\n                                         Integer bisherigeVerlaengerungen) {\n  return (NOT istVorgemerkt) AND (bisherigeVerlaengerungen < 2)\n}","typ":"code"},{"text":"Punkteverteilung:","typ":"ueberschrift"},{"text":"berechneMahngebuehr — 2 Punkte\n  1 Punkt: Gebühr aus überzogenen Tagen und Tagessatz 0,40 EUR ermittelt und\n           zurückgegeben.\n  1 Punkt: Obergrenze 10,00 EUR wirksam umgesetzt (Fallunterscheidung oder\n           Minimumbildung).","typ":"code"},{"text":"istVerlaengerbar — 2 Punkte\n  1 Punkt: Vormerkung schließt die Verlängerung aus.\n  1 Punkt: Höchstens zwei bisherige Verlängerungen zugelassen; beide\n           Bedingungen sind UND-verknüpft.","typ":"code"},{"text":"Bewertungshinweise:","typ":"ueberschrift"},{"text":"- Eine Rückgabe des Wahrheitswertes über eine ausformulierte if-else-Struktur statt über den direkten Ausdruck ist gleichwertig.\n- Punktabzug, wenn im Rumpf erneut über die Medienart entschieden wird (etwa Abfrage eines Typkennzeichens): Damit ist die Redundanz nicht aufgelöst, die durch die Überschreibung gerade beseitigt werden soll.\n- Wird die Obergrenze als \"ab 10,00 EUR\" statt \"über 10,00 EUR\" geprüft, ist das Ergebnis identisch und daher nicht zu beanstanden.\n- Die Grenze von zwei Verlängerungen muss die dritte Verlängerung ausschließen; ein Vergleich mit <= 2 ist als Grenzfehler mit 1 Punkt Abzug innerhalb dieser Teilaufgabe zu werten.","typ":"absatz"}],"operator_id":"operator.erstellen","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":4,"punkterahmen":{"max":4,"min":4},"quellen":["ap2-fiae-2023-sommer-ae1-a02-b-bd"]},{"artefakt_id":"artefakt.quellcode","aufgabe":[{"text":"Ausgangssituation","typ":"ueberschrift"},{"text":"Die Voltweide GmbH betreibt öffentliche Ladepunkte für Elektrofahrzeuge und rechnet jeden Ladevorgang über eine eigene Software ab. Die Tarife sind polymorph abgebildet: TarifBasis, TarifNacht und TarifFlotte erben von der abstrakten Klasse Ladetarif und überschreiben deren abstrakte Methoden.","typ":"absatz"},{"text":"Ladetarif {abstrakt}\n- bezeichnung : String\n+ berechneEntgelt(kilowattstunden : Double) : Double {abstrakt}\n+ istBlockiergebuehrFaellig(standzeitMinuten : Integer) : Boolean {abstrakt}","typ":"code"},{"text":"Für TarifNacht gilt: Bis einschließlich 20 Kilowattstunden kostet jede Kilowattstunde 0,42 EUR, jede weitere 0,31 EUR. Eine Blockiergebühr wird fällig, sobald ein Fahrzeug länger als 90 Minuten am Ladepunkt steht.","typ":"absatz"},{"text":"Implementieren Sie in Pseudocode oder als Struktogramm die überschreibenden Methoden berechneEntgelt und istBlockiergebuehrFaellig der Klasse TarifNacht. 4 Punkte","typ":"absatz"},{"text":"Hinweis: Verwenden Sie die vorgegebenen Signaturen; eine Fehlerbehandlung ist nicht erforderlich.","typ":"absatz"}],"beispiel_id":"bsp-polymorphie-erstellen-quellcode-02","freigabeart":"maschinell","loesung":[{"text":"Erwartungshorizont — 4 Punkte","typ":"ueberschrift"},{"text":"Hinweis: Struktogramm und Pseudocode sind gleichwertig. Eine an eine konkrete Programmiersprache angelehnte Schreibweise wird ebenso gewertet. Das Schlüsselwort override ist für die volle Punktzahl nicht notwendig. Weitere sachlich richtige Lösungen sind möglich.","typ":"absatz"},{"text":"Musterlösung:","typ":"ueberschrift"},{"text":"public override Double berechneEntgelt(Double kilowattstunden) {\n  if (kilowattstunden <= 20) {\n    return kilowattstunden * 0.42\n  }\n  return 20 * 0.42 + (kilowattstunden - 20) * 0.31\n}","typ":"code"},{"text":"public override Boolean istBlockiergebuehrFaellig(Integer standzeitMinuten) {\n  return standzeitMinuten > 90\n}","typ":"code"},{"text":"Punkteverteilung:","typ":"ueberschrift"},{"text":"berechneEntgelt — 3 Punkte\n  1 Punkt: Fallunterscheidung an der Grenze von 20 Kilowattstunden.\n  1 Punkt: Menge bis 20 Kilowattstunden mit 0,42 EUR bewertet.\n  1 Punkt: Nur die darüber hinausgehende Menge mit 0,31 EUR bewertet und die\n           Summe zurückgegeben.","typ":"code"},{"text":"istBlockiergebuehrFaellig — 1 Punkt\n  1 Punkt: Rückgabe wahr genau dann, wenn die Standzeit 90 Minuten\n           überschreitet.","typ":"code"},{"text":"Bewertungshinweise:","typ":"ueberschrift"},{"text":"- Die ungleiche Verteilung 3 zu 1 ergibt sich aus dem Aufwand: Die gestaffelte Preisbildung verlangt eine Fallunterscheidung und zwei Teilrechnungen, die Blockiergebühr nur einen Vergleich.\n- Wird bei mehr als 20 Kilowattstunden die gesamte Menge mit 0,31 EUR bewertet, ist die Staffel verfehlt: höchstens 1 Punkt für berechneEntgelt.\n- Punktabzug, wenn im Rumpf erneut über die Tarifart entschieden wird (etwa Abfrage einer Tarifbezeichnung): Damit ist die Redundanz nicht aufgelöst, die durch die Überschreibung gerade beseitigt werden soll.\n- Genau 90 Minuten lösen keine Blockiergebühr aus; ein Vergleich mit >= 90 ist ein Grenzfehler und kostet den Punkt für diese Methode.","typ":"absatz"}],"operator_id":"operator.erstellen","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":4,"punkterahmen":{"max":4,"min":4},"quellen":["ap2-fiae-2023-sommer-ae1-a02-b-bd"]},{"artefakt_id":"artefakt.quellcode","aufgabe":[{"text":"Ausgangssituation","typ":"ueberschrift"},{"text":"Die Kranzbach Metallverarbeitung plant die Instandhaltung ihres Maschinenparks künftig mit einer eigenen Anwendung. Die Maschinentypen sind polymorph abgebildet: Drehbank, Lackierroboter und Verpackungsstrasse erben von der abstrakten Klasse Maschine und überschreiben deren abstrakte Methoden.","typ":"absatz"},{"text":"Maschine {abstrakt}\n- inventarnummer : String\n+ berechneWartungsintervall(betriebsstunden : Integer) : Integer {abstrakt}\n+ darfUnbeaufsichtigtLaufen(istNachtschicht : Boolean) : Boolean {abstrakt}","typ":"code"},{"text":"Für Lackierroboter gilt: Das Wartungsintervall beträgt 500 Stunden. Hat die Maschine bereits 4000 Betriebsstunden geleistet, verkürzt es sich auf 250 Stunden. Unbeaufsichtigt laufen darf ein Lackierroboter nur außerhalb der Nachtschicht.","typ":"absatz"},{"text":"Implementieren Sie in Pseudocode oder als Struktogramm die überschreibenden Methoden berechneWartungsintervall und darfUnbeaufsichtigtLaufen der Klasse Lackierroboter. 4 Punkte","typ":"absatz"},{"text":"Hinweis: Verwenden Sie die vorgegebenen Signaturen; eine Fehlerbehandlung ist nicht erforderlich.","typ":"absatz"}],"beispiel_id":"bsp-polymorphie-erstellen-quellcode-03","freigabeart":"maschinell","loesung":[{"text":"Erwartungshorizont — 4 Punkte","typ":"ueberschrift"},{"text":"Hinweis: Struktogramm und Pseudocode sind gleichwertig. Eine an eine konkrete Programmiersprache angelehnte Schreibweise wird ebenso gewertet. Das Schlüsselwort override ist für die volle Punktzahl nicht notwendig. Weitere sachlich richtige Lösungen sind möglich.","typ":"absatz"},{"text":"Musterlösung:","typ":"ueberschrift"},{"text":"public override Integer berechneWartungsintervall(Integer betriebsstunden) {\n  if (betriebsstunden >= 4000) {\n    return 250\n  }\n  return 500\n}","typ":"code"},{"text":"public override Boolean darfUnbeaufsichtigtLaufen(Boolean istNachtschicht) {\n  return NOT istNachtschicht\n}","typ":"code"},{"text":"Punkteverteilung:","typ":"ueberschrift"},{"text":"berechneWartungsintervall — 2 Punkte\n  1 Punkt: Fallunterscheidung an der Grenze von 4000 Betriebsstunden.\n  1 Punkt: Beide Rückgabewerte richtig zugeordnet (250 ab der Grenze,\n           sonst 500).","typ":"code"},{"text":"darfUnbeaufsichtigtLaufen — 1 Punkt\n  1 Punkt: Rückgabe wahr genau außerhalb der Nachtschicht (Verneinung des\n           Parameters oder gleichwertige Fallunterscheidung).","typ":"code"},{"text":"Signaturen — 1 Punkt\n  1 Punkt: Beide Methoden übernehmen Namen, Parameter und Rückgabetyp der\n           abstrakten Oberklasse unverändert und sind damit überschreibend.","typ":"code"},{"text":"Bewertungshinweise:","typ":"ueberschrift"},{"text":"- Der eigene Punkt für die Signaturen trägt dem Umstand Rechnung, dass die beiden Rümpfe hier knapp ausfallen; die Überschreibbarkeit ist der fachliche Kern der Aufgabe und wird deshalb gesondert gewertet.\n- Punktabzug, wenn im Rumpf erneut über den Maschinentyp entschieden wird (etwa Abfrage eines Typkennzeichens): Damit ist die Redundanz nicht aufgelöst, die durch die Überschreibung gerade beseitigt werden soll.\n- Genau 4000 geleistete Betriebsstunden führen bereits zum verkürzten Intervall von 250 Stunden; ein Vergleich mit > 4000 ist ein Grenzfehler und kostet den Punkt für die Zuordnung der Rückgabewerte.\n- Eine Lösung, die statt der Verneinung eine if-else-Struktur mit den Rückgaben falsch und wahr verwendet, ist gleichwertig.","typ":"absatz"}],"operator_id":"operator.erstellen","pruefungszuordnung":{"berufe":["FIAE"],"teil":"AP2"},"punkte":4,"punkterahmen":{"max":4,"min":4},"quellen":["ap2-fiae-2023-sommer-ae1-a02-b-bd"]}],"konzept_id":"fachkonzept.polymorphie","schema_version":3}