<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.bzz.ch/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://wiki.bzz.ch/feed.php">
        <title>BZZ - Modulwiki - modul:archiv:m320:learningunits:lu99</title>
        <description></description>
        <link>https://wiki.bzz.ch/</link>
        <image rdf:resource="https://wiki.bzz.ch/_media/wiki/logo.png" />
       <dc:date>2026-08-31T06:12:24+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/aufgaben/lu08-calculatorext?rev=1788091845&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/aufgaben/lu08-aufgabe_calculator?rev=1788091813&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/aufgaben/lu08-aufgabe_4?rev=1788091813&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/aufgaben/lu08-aufgabe_3?rev=1788091813&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/theorie/lu8-kapitel_3?rev=1788091783&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/theorie/lu8-kapitel_2?rev=1788091783&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/start?rev=1788091603&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/theorie/lu8-kapitel_4?rev=1788091603&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/loesungen/lu08-calculator?rev=1788091603&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/loesungen/lu08-calculator_extended?rev=1788091603&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/loesungen/lu08-aufgabe_5?rev=1788091603&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/loesungen/lu08-aufgabe_3?rev=1788091603&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/loesungen/lu08-aufgabe_1?rev=1788091603&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/aufgaben/lu08-aufgabe_5?rev=1788091603&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/aufgaben/lu08-aufgabe_2?rev=1788091603&amp;do=diff"/>
                <rdf:li rdf:resource="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/aufgaben/lu08-aufgabe_1?rev=1788091603&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://wiki.bzz.ch/_media/wiki/logo.png">
        <title>BZZ - Modulwiki</title>
        <link>https://wiki.bzz.ch/</link>
        <url>https://wiki.bzz.ch/_media/wiki/logo.png</url>
    </image>
    <item rdf:about="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/aufgaben/lu08-calculatorext?rev=1788091845&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-30T12:10:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Aufgabe 4 - Polymorphie am Beispiel Taschenrechner - ↷ Links angepasst, weil Seiten im Wiki verschoben wurden</title>
        <link>https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/aufgaben/lu08-calculatorext?rev=1788091845&amp;do=diff</link>
        <description>Aufgabe 4 - Polymorphie am Beispiel Taschenrechner

Ziel

Sie können eine bestehende OO-Anwendung erweitern.

Auftrag

Der von Ihnen erstellt Rechner soll neben den 4 Grundoperationen auch noch die Exponentialfunktion anbieten.



Als Operationszeichen dient das Zeichen</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/aufgaben/lu08-aufgabe_calculator?rev=1788091813&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-30T12:10:13+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Aufgabe 3 - Abstrakte Klasse für Taschenrechner - ↷ Links angepasst, weil Seiten im Wiki verschoben wurden</title>
        <link>https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/aufgaben/lu08-aufgabe_calculator?rev=1788091813&amp;do=diff</link>
        <description>Aufgabe 3 - Abstrakte Klasse für Taschenrechner

Ziel

Sie können eine umfassende Aufgabe mit diversen Techniken der OOP umsetzen.

Auftrag

Sie implementieren einen einfachen Rechner mit den Grundoperationen +, -, *, /, basierend auf dem gezeigten Klassendiagramm.</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/aufgaben/lu08-aufgabe_4?rev=1788091813&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-30T12:10:13+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Aufgabe 5 - Nutzen von Interface; ein Zoo - ↷ Links angepasst, weil Seiten im Wiki verschoben wurden</title>
        <link>https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/aufgaben/lu08-aufgabe_4?rev=1788091813&amp;do=diff</link>
        <description>Aufgabe 5 - Nutzen von Interface; ein Zoo

Ziel

Sie können ein Interface mittels Duck-Typing realisieren, um ein Objekt etwas tun zu lassen, falls es das kann.

Ausgangslage

Gegben ist das folgende Klassendiagramm:



Die Klassen Animal, Building und</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/aufgaben/lu08-aufgabe_3?rev=1788091813&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-30T12:10:13+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Aufgabe 7 - Formelle Schnittstellen für Delegation - ↷ Links angepasst, weil Seiten im Wiki verschoben wurden</title>
        <link>https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/aufgaben/lu08-aufgabe_3?rev=1788091813&amp;do=diff</link>
        <description>Aufgabe 7 - Formelle Schnittstellen für Delegation

Ziel

Sie können eine formelle Schnittstelle in Python definieren und implementieren.  

Hinweise

	*  Diese Übungen müsste Ihnen bekannt sein aus der LU05, Aufgabe 1.
	*  Hier soll es nun darum gehen, formelle Schnittstellen für die delegierten Aufrufe zu definieren.</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/theorie/lu8-kapitel_3?rev=1788091783&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-30T12:09:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>2. Interface in Python - ↷ Links angepasst, weil Seiten im Wiki verschoben wurden</title>
        <link>https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/theorie/lu8-kapitel_3?rev=1788091783&amp;do=diff</link>
        <description>2. Interface in Python

Schnittstellen spielen im Software Engineering eine wichtige Rolle. Wenn eine Anwendung wächst, werden Aktualisierungen und Änderungen an der Codebasis immer schwieriger zu verwalten. Hier erfahren Sie, wie Sie eine Python-Schnittstelle</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/theorie/lu8-kapitel_2?rev=1788091783&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-30T12:09:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>1. Abstrakte Basisklassen - ↷ Links angepasst, weil Seiten im Wiki verschoben wurden</title>
        <link>https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/theorie/lu8-kapitel_2?rev=1788091783&amp;do=diff</link>
        <description>1. Abstrakte Basisklassen

Eine abstrakte Klasse kann als Blaupause für andere Klassen betrachtet werden. Sie ermöglicht es, eine Reihe von Methoden zu erstellen, die in allen untergeordneten Klassen implementiert werden müssen (= Vertrag für die Implememtation</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/start?rev=1788091603&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-30T12:06:43+00:00</dc:date>
        <dc:creator>msuter (msuter@undisclosed.example.com)</dc:creator>
        <title>LU07: Abstraktion von Aufgaben - ↷ Seite von modul:m320:learningunits:lu99:start nach modul:archiv:m320:learningunits:lu99:start verschoben</title>
        <link>https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/start?rev=1788091603&amp;do=diff</link>
        <description>LU07: Abstraktion von Aufgaben

Theorie


	* 1. Abstrakte Basisklassen
	* 2. Interface in Python
	* 3. Python Mixin (Mehrfachvererbung)



Aufgaben

neue Aufgabe

	* Aufgabe 1 - Instanziierung abstrakter Klassen
	* Aufgabe 2 - Abstrakte Klasse benennen
	* Aufgabe 3 - Abstrakte Klasse für Taschenrechner
	* Aufgabe 4 - Polymorphie am Beispiel Taschenrechner
	* Aufgabe 5 - Nutzen von Interface; ein Zoo
	* Aufgabe 6 - Duck-Typing nutzen
	* Aufgabe 7 - Formelle Schnittstellen für Delegation



Lösung…</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/theorie/lu8-kapitel_4?rev=1788091603&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-30T12:06:43+00:00</dc:date>
        <dc:creator>msuter (msuter@undisclosed.example.com)</dc:creator>
        <title>3. Python Mixin (Mehrfachvererbung) - ↷ Seite von modul:m320:learningunits:lu99:theorie:lu8-kapitel_4 nach modul:archiv:m320:learningunits:lu99:theorie:lu8-kapitel_4 verschoben</title>
        <link>https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/theorie/lu8-kapitel_4?rev=1788091603&amp;do=diff</link>
        <description>3. Python Mixin (Mehrfachvererbung)

Was ist ein Mixin in Python?

Ein Mixin

	*  ist eine Klasse, welche Methodenimplementierungen zur Wiederverwendung durch mehrere verwandte, untergeordnete Klassen bereitstellt. Die Vererbung impliziert jedoch keine Ist-ein-Beziehung.</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/loesungen/lu08-calculator?rev=1788091603&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-30T12:06:43+00:00</dc:date>
        <dc:creator>msuter (msuter@undisclosed.example.com)</dc:creator>
        <title>Lösung 3 - Taschenrechner - ↷ Seite von modul:m320:learningunits:lu99:loesungen:lu08-calculator nach modul:archiv:m320:learningunits:lu99:loesungen:lu08-calculator verschoben</title>
        <link>https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/loesungen/lu08-calculator?rev=1788091603&amp;do=diff</link>
        <description>Lösung 3 - Taschenrechner

Musterlösung auf git

&lt;https://github.com/bzz-fgict/M320_Solutions/tree/main/LU08/Aufgabe%20Calculator&gt;

----------

&lt;https://creativecommons.org/licenses/by-nc-sa/4.0/&gt; (c) René Probst</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/loesungen/lu08-calculator_extended?rev=1788091603&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-30T12:06:43+00:00</dc:date>
        <dc:creator>msuter (msuter@undisclosed.example.com)</dc:creator>
        <title>Lösung 4 - Taschenrechner erweitert - ↷ Seite von modul:m320:learningunits:lu99:loesungen:lu08-calculator_extended nach modul:archiv:m320:learningunits:lu99:loesungen:lu08-calculator_extended verschoben</title>
        <link>https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/loesungen/lu08-calculator_extended?rev=1788091603&amp;do=diff</link>
        <description>Lösung 4 - Taschenrechner erweitert

Musterlösung auf git

&lt;https://github.com/bzz-fgict/M320_Solutions/tree/main/LU08/Aufgabe%20Calculator&gt;

----------

&lt;https://creativecommons.org/licenses/by-nc-sa/4.0/&gt; (c) René Probst</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/loesungen/lu08-aufgabe_5?rev=1788091603&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-30T12:06:43+00:00</dc:date>
        <dc:creator>msuter (msuter@undisclosed.example.com)</dc:creator>
        <title>Lösung 6 - Duck-Typing nutzen - ↷ Seite von modul:m320:learningunits:lu99:loesungen:lu08-aufgabe_5 nach modul:archiv:m320:learningunits:lu99:loesungen:lu08-aufgabe_5 verschoben</title>
        <link>https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/loesungen/lu08-aufgabe_5?rev=1788091603&amp;do=diff</link>
        <description>Lösung 6 - Duck-Typing nutzen

Code-Analyse

	*  Duck-Typing erfolgt über die Methoden who_are_you sowie walk, run und fly.  
	*  Dank der Funktion  
		*  hasattr kann dynamisch überprüft werden, ob ein Objekt über eine bestimmte Methode verfügt.</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/loesungen/lu08-aufgabe_3?rev=1788091603&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-30T12:06:43+00:00</dc:date>
        <dc:creator>msuter (msuter@undisclosed.example.com)</dc:creator>
        <title>Lösung 7 - Formelle Schnittstellen für Delegation - ↷ Seite von modul:m320:learningunits:lu99:loesungen:lu08-aufgabe_3 nach modul:archiv:m320:learningunits:lu99:loesungen:lu08-aufgabe_3 verschoben</title>
        <link>https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/loesungen/lu08-aufgabe_3?rev=1788091603&amp;do=diff</link>
        <description>Lösung 7 - Formelle Schnittstellen für Delegation

&lt;https://github.com/bzz-fgict/M320_Solutions/tree/main/LU08/Aufgabe_3&gt;</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/loesungen/lu08-aufgabe_1?rev=1788091603&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-30T12:06:43+00:00</dc:date>
        <dc:creator>msuter (msuter@undisclosed.example.com)</dc:creator>
        <title>Lösung 1 - Instanziierung abstrakter Klassen - ↷ Seite von modul:m320:learningunits:lu99:loesungen:lu08-aufgabe_1 nach modul:archiv:m320:learningunits:lu99:loesungen:lu08-aufgabe_1 verschoben</title>
        <link>https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/loesungen/lu08-aufgabe_1?rev=1788091603&amp;do=diff</link>
        <description>Lösung 1 - Instanziierung abstrakter Klassen

Python wirft eine Exception, falls eine Klasse mit einer abstrakten Methode instanziiert wird:   

	&quot;TypeError: Can&#039;t instantiate abstract class Animal with abstract method move&quot;</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/aufgaben/lu08-aufgabe_5?rev=1788091603&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-30T12:06:43+00:00</dc:date>
        <dc:creator>msuter (msuter@undisclosed.example.com)</dc:creator>
        <title>Aufgabe 6 - Duck-Typing nutzen - ↷ Seite von modul:m320:learningunits:lu99:aufgaben:lu08-aufgabe_5 nach modul:archiv:m320:learningunits:lu99:aufgaben:lu08-aufgabe_5 verschoben</title>
        <link>https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/aufgaben/lu08-aufgabe_5?rev=1788091603&amp;do=diff</link>
        <description>Aufgabe 6 - Duck-Typing nutzen

Ziel

Sie wissen wie Sie Duck-Typing nutzen, um ein Objekt etwas tun zu lassen, falls es das kann.  

Hinweise

	*  Klonen Sie dieses Repository: &lt;https://github.com/bzz-fgict/M320_LU08_Aufgabe5&gt;.  
	*  Führen Sie das Programm animals.py aus.  
	*  Kontrollieren Sie die Ausgabe (siehe</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/aufgaben/lu08-aufgabe_2?rev=1788091603&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-30T12:06:43+00:00</dc:date>
        <dc:creator>msuter (msuter@undisclosed.example.com)</dc:creator>
        <title>Aufgabe 2 - Abstrakte Klasse benennen - ↷ Seite von modul:m320:learningunits:lu99:aufgaben:lu08-aufgabe_2 nach modul:archiv:m320:learningunits:lu99:aufgaben:lu08-aufgabe_2 verschoben</title>
        <link>https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/aufgaben/lu08-aufgabe_2?rev=1788091603&amp;do=diff</link>
        <description>Aufgabe 2 - Abstrakte Klasse benennen

Ziel

	*  Sie können in einer Vererbungshierarchie festlegen, welche Klassen abstrakt deklariert werden.

Auftrag

Zeigen Sie einen Sachverhalt auf, bei dem Sie eine Vererbungshierarchie benutzen,
die eine abstrakte Oberklasse aufweist. (Ihrer Fantasie ist Freilauf gegeben)</description>
    </item>
    <item rdf:about="https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/aufgaben/lu08-aufgabe_1?rev=1788091603&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-08-30T12:06:43+00:00</dc:date>
        <dc:creator>msuter (msuter@undisclosed.example.com)</dc:creator>
        <title>Aufgabe 1 - Instanziierung abstrakter Klassen - ↷ Seite von modul:m320:learningunits:lu99:aufgaben:lu08-aufgabe_1 nach modul:archiv:m320:learningunits:lu99:aufgaben:lu08-aufgabe_1 verschoben</title>
        <link>https://wiki.bzz.ch/modul/archiv/m320/learningunits/lu99/aufgaben/lu08-aufgabe_1?rev=1788091603&amp;do=diff</link>
        <description>Aufgabe 1 - Instanziierung abstrakter Klassen

Ziel

Sie können abstrakte Klassen in Python definieren, um damit deren Instanziierung zu verhindern.  

Hinweise

	*  Abstrakte Klassen können nicht instanziiert werden.   
	*  Eine Klasse ist abstrakt, sobald eine ihrer Methoden als abstrakt deklariert ist (mit</description>
    </item>
</rdf:RDF>
