- Subtyping - Typisierung - Deklarationstyp = statischer Typisierung - statische Typsicherheit - Behälterklasse - Object ist per default der Supertyp aller Objekttypen - Cast - instanceof-Operator: Stellt Java extra dafür zur Verfügung - Basisdatentypen und Subtyping - Verpacken - Bibliothek: java.lang, Klasse mit Attribut value - Wrapperklassen - Autoboxing, Boxing und Unboxing - Subtyping bei Arrays - Klassifizierung von Objekten - Ist-ein-Beziehung - Spezialisierung und Abstraktion - Spezialisierung - Abstraktion - Schnittstellentyp (interface) - Interfaces und Subtyping - Interfacedeklaration - Klassentypen - Interfacetypen - Referenz- oder Objekttypen: Klassen-, Interface-, Arraytypen - Supertyp - Direkter Subtyp - Interfacetypen als Subtypen - Klassentypen als Subtypen - Klassifikation und Subtyping: Subtyping ist ein hervoragendes Mittel, zur Klassifikation - Typhierarchie erweitern - Vererbung - Vererbung = inheritance - Überschreiben, overwriting - Schlüsselwort "super" - Vererbung und Objektinitialisierung - Konstruktoren - Vererbung und Konstruktoren!!! - Vererbung und innere Klasse - Vererbung, Subtyping und Subclassing - Subclassing: Verberung und Subtyping in einem - Abstrakte Klassen und Methoden - Schlüsselwort "abstract" - Abstrakte Klassen - Abstrakte Methoden - Mehrfachvererbung = multiple inheritance - Vererbung und Kapselung - Privater Zugriff, Paketloser Zugriff, öffentlicher Zugriff - Geschützter Zugriff 1. Man kann eine Klasse so anwenden, wie sie ist (Anwendungsnutzung) 2. Man kann eine Klasse erben, um eine speziellere Klasse zu entwickeln (Verberungsnutzung) - Schlüsselwort "protected" - unveränderliche Klassen - final - Zusammenspiel von Vererbung und Kapselung - private Attribute und Methoden: Werden vererbt, aber nicht zugreifbar - Realisierung gekapselter Objektgeflechte Kapselung Klassinvarianten Information Hiding = Geheimnisprinzip private Schachtelung Schachtelung bei Blöcken Schachtelung bei Klassen Statisch Innere Klassen innere Klassen Behälter = Container Ein Behälter ist ein Datentyp zum Speichern von Elementen bzw. Objekt-Referenzen