Abstrakte Klassen und das Interface-Konzept

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

1 Funktionstemplates Einbinden von Templates: –Eine *.o Datei, die durch Übersetzen einer Datei nur mit Templates erzeugt wurde, enthält keinen Programmcode.
Objektorientierte Programmierung
Konzepte objektorientierter Systeme
Kritische Betrachtung
der Universität Oldenburg
Abstrakte Klassen HS Merseburg (FH) WS 06/07.
Threads Richard Göbel.
Java: Objektorientierte Programmierung
Java: Grundlagen der Objektorientierung
Abstrakte Klassen.
Interface bzw. Schnittstelle anschaulich: Hüllenklasse
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 5 Polymorphismus Sommersemester 2003 Lars Bernard.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Einführung in die OOP in Java
Programmieren mit JAVA
Programmieren mit JAVA
Vererbung Spezialisierung von Klassen in JAVA möglich durch
PKJ 2005/1 Stefan Dissmann Klassenhierarchie Person Kunde Goldkunde Lieferant Object.
Software Design Patterns Creational Patterns Structural Patterns Behavioral Patterns –Behavioral Class Patterns Interpreter Template Method Pattern –Behavioral.
Abstrakte Klassen DVG
DVG Interfaces. DVG mehrfache Vererbung 4 Mehrfache Vererbung ist die Ableitung einer Klassen von mehreren anderen Klassen. –farbigerPunkt.
07-GraphischeObjekte Graphische Objekte in EMMA301Paint.
Abstrakte Klassen, Interface
DVG Klassen und Objekte
Klassen 02 - Klassen.
Vererbung Einfache Vererbung – Erben von abstrakten Klassen – Implementieren eines Interfaces.
Klassen und Schnittstellen Klasse: Definiert Zustandsraum ihrer Instanzen vollständig (Implementierung der Struktur, soweit Voraussetzung für die Methoden-
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Entwurfs- und Implementationsdiagramme
Objektorientiertes Programmieren
CuP - Java Elfte Vorlesung Montag, 11. November 2002.
Copyright 2011 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM Wintersemester 2011/12 Kapitel 11, Folie 1 2 Dr. Christian Herzog Technische.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Klassenhierarchien, Vererbung
Objektorientierte Programmierung
EPROG Tutorium #6 Philipp Effenberger
EPROG Tutorium #5 Philipp Effenberger
se_2_hooks.ppt1 Softwareengineering Einfache Hooks und Abstrakte Methoden (Klassen) Prof. Dr.-Ing. Axel Benz, Berlin School of Economics and.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Java-Kurs Übung Besprechung der Hausaufgabe Vererbung
Java-Kurs Übung Besprechung der Hausaufgabe
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Java-Kurs Übung Besprechung der Hausaufgabe Vererbung
Einführung in die Programmierung mit Java
IT2 – WS 2005/20061Nov 14, 2005 Visibility  public: Sichtbar in allen Paketen  protected: Sichtbar innerhalb des Pakets und in den Unterklassen  (default,
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 9. Vorlesung WS 2001/2002.
Vererbungskonzepte in Java
Ein- und Ausgabe in Java Packet: java.io
Objektorientierte Programmierung mit JAVA. © Klasse Wie in C++ ist die Klasse das primäre Mittel um ein Entity abzubilden Die Eigenschaften.
C++ FÜR cOMPUTERSPIELENTWICKLER
Tutorium Software-Engineering SS14 Florian Manghofer.
Dr. Wolfram Amme, Virtuelle Vererbung, Informatik II, FSU Jena, SS Auflösung von Konflikten bei Mehrfachvererbung Umbenennung mehrdeutiger Methoden.
, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Kapselung von Daten I Gründe für die Datenkapselung Datenkonsistenz leichtere.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Konstruktoren.
„Was du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen.“
Venusspiegel und Marsschild
OOP II.
Java-Kurs Übung Klassen und Objekte: Vererbung (Fortsetzung)
Raphael Fischer Informatik II - Übung 06 Raphael Fischer
Programmierung und Vererbung in Java
Objektorientierte Programmierung und Vererbung
OO-Programmierung & Vererbung
1. Die rekursive Datenstruktur Liste 1
Implementieren von Klassen
Vererbung in Java Von Jan und Eddi.
Polymorphie Überschreiben
 Präsentation transkript:

Abstrakte Klassen und das Interface-Konzept Ahmad-Nessar Nazar Abstrakte Klassen und das Interface-Konzept Walther-Rathenau-Gewerbeschule Nazar

Vererbung Fahrzeug LKW PKW Motorrad Fahrrad Ahmad-Nessar Nazar Vererbung Fahrzeug LKW PKW Motorrad Fahrrad ....... ....... ....... ....... Walther-Rathenau-Gewerbeschule Nazar

Ahmad-Nessar Nazar Abstrakte Klassen Eine Klasse wird als abstract deklariert, wenn es Eigenschaften und Verhalten mehrerer Klassen zusammen- fasst, aber es wenig Sinn macht, konkrete Objekte der Klasse zu besitzen. „Um was für ein Fahrzeug genau soll es sich handeln?“ Methoden werden dann als abstract markiert, wenn sie in den Unterklassen überschrieben werden müssen, da jede Unterklasse eine spezielle Variante der Methode benötigt. „Der Verbrauch eines Fahrzeugs hängt von der konkreten Klasse ab!“ Walther-Rathenau-Gewerbeschule Nazar

Ahmad-Nessar Nazar Abstrakte Klassen Abstrakte Klassen fassen Klassen mit gemeinsamen Eigenschaften zusammen. Sie können nie instantiiert werden! Sie können abstrakte Methoden beinhalten, die erst in Unterklassen implementiert werden müssen. Im Gegensatz zu interfaces, dürfen aber in abstrakte Klassen Methoden implementiert (programmiert) werden. Sobald eine Klasse mindestens eine abstrakte Methode enthält, muss die Klasse selbst auch als abstract deklariert werden. Walther-Rathenau-Gewerbeschule Nazar

Ahmad-Nessar Nazar Abstrakte Klassen Abstrakte Klassen wird das Schlüsselwort abstract vor dem Schlüsselwort class vorangestellt. Abstrakte Methoden enden mit einem Semikolon und haben keinen Methodenkörper, d.h. sie sind nicht implementiert! Nicht-abstrakte Klassen müssen alle abstrakte Methoden ihrer Superklassen überschreiben, sofern sie nicht selbst als abstrakt deklariert sind. Walther-Rathenau-Gewerbeschule Nazar

Ahmad-Nessar Nazar Abstrakte Klassen Die Konstruktoren in den abstrakten Klassen werden nur durch super-Aufrufe in den Unterklassen aufgerufen werden! Walther-Rathenau-Gewerbeschule Nazar

Ahmad-Nessar Nazar Abstrakte Klassen Abstrakte Methoden dürfen nie zusätzlich als private oder final deklariert werden! Warum? Abstrakte Methoden dürfen protected oder default sein. Abstrakte Methoden dürfen keinen Block mit geschweiften Klammern definieren! Walther-Rathenau-Gewerbeschule Nazar

Ahmad-Nessar Nazar Übungen Lesen Sie Kapitel 51 im „Gailer“ durch: http://www.gailer-net.de/tutorials/java/java-toc.html#51 Bearbeiten Sie die zugehörigen Programmieraufgaben und Quiz. Walther-Rathenau-Gewerbeschule Nazar

Ahmad-Nessar Nazar Interfaces (Schnittstellen) Walther-Rathenau-Gewerbeschule Nazar

Interfaces (Schnittstellen) Ahmad-Nessar Nazar Interfaces (Schnittstellen) Interfaces (Schnittstellen) sind im Wesentlichen eine Sammlung von Methoden-Signaturen ohne konkrete Implementierung. Schnittstellen können aber auch Konstanten enthalten. Schnittstellen eignen sich dann, wenn verschiedene (nicht notwendigerweise miteinander in einer Vererbungsbeziehung stehende) Objekte teilweise die gleichen Fähigkeiten haben können. Walther-Rathenau-Gewerbeschule Nazar

Ahmad-Nessar Nazar Walther-Rathenau-Gewerbeschule Nazar

Interfaces (Schnittstellen) Ahmad-Nessar Nazar Interfaces (Schnittstellen) Implementiert eine nicht abstrakte Klasse ein bestimmtes Interface, dann achtet der Compiler darüber, dass alle Methoden des Interfaces durch die Klasse implementiert („ausprogrammiert“) werden. Wie eine Methode implementiert wird kann natürlich der Compiler nicht vorgeben.... Walther-Rathenau-Gewerbeschule Nazar

Interfaces (Schnittstellen) Ahmad-Nessar Nazar Interfaces (Schnittstellen) Implementiert eine nicht abstrakte Klasse ein bestimmtes Interface, dann muss sie die folgenden Aspekte beachten: Anbieten einer konkreten Implementierung für jede im Interface deklarierten Methode! Beachtung der Regeln für die Überschreibung von Methoden. Zum Beispiel darf die Parameterliste einer Interface-Methode in der Klasse nicht verändert werden. Es dürfen keine weiteren checked-Exceptions außer die im Interface definierten „geworfen“ werden. Implementiert eine abstrakte Klasse ein Interface, dann muss sie keine im Interface definierte Methode implementieren: public abstract class Flug implements Fliegen { } //Legale (leere) Klassen-Definition Walther-Rathenau-Gewerbeschule Nazar

Interfaces (Schnittstellen) Ahmad-Nessar Nazar Interfaces (Schnittstellen) Eine Klasse darf mehr als ein Interface implementieren. Die folgende Klasse implementiert die Schnittstellen A, B und C: Eine Klasse kann nur von einer anderen Klasse direkt erben, aber beliebig viele Interfaces implementieren: Ein Interface kann aber von beliebig vielen anderen Interfaces erben. Dabei wird auch das Schlüsselwort extends verwendet. Im folgenden Beispiel erbt die Schnittstelle A von den Schnittstellen B und C: public class MyClass implements A, B, C {...} public class MyClass extends SuperC implements A, B, C {…} public class MyClass extends ClassA, ClassB implements A, B, C {…} //Illegal public interface A extends B, C {...} Walther-Rathenau-Gewerbeschule Nazar

Aufgabe 1 public interface A { public void a(); } Ahmad-Nessar Nazar Aufgabe 1 public interface A { public void a(); } public interface B { public void b(); } public interface C extends A, B { public void c(); } public interface D { public void d(); } public class MyClass implements C, D { /* * Programmieren Sie den Rumpf dieser Klasse. * Geben Sie in den Methoden irgendwelche Bildschirm- * Informationen aus! * Testen Sie Ihr Ergebnis anschließend. * Begründen Sie die Ausgabe! */ } Walther-Rathenau-Gewerbeschule Nazar

Aufgabe 2 Welche der folgenden Definitionen ist legal bzw. illegal? Ahmad-Nessar Nazar Aufgabe 2 Welche der folgenden Definitionen ist legal bzw. illegal? class A {} class B implements A {} interface C {} interface D {} interface E implements C {} interface F extends A {} interface G extends D {} class H extends A, B {} class I implements C, D {} interface J extends C, D {} interface K extends A, implements C {} Walther-Rathenau-Gewerbeschule Nazar

Ahmad-Nessar Nazar Übungen Lesen Sie Kapitel 53 im „Gailer“ durch: http://www.gailer-net.de/tutorials/java/java-toc.html#51 Bearbeiten Sie die zugehörigen Programmieraufgaben und Quiz. Walther-Rathenau-Gewerbeschule Nazar