Vorausgesetzte Grundkenntnisse. Inhalt. Klassenhierarchie und Vererbung. Vererbung. Klassenhierarchie und Vererbung. Einführung in C# Teil 3
|
|
- Astrid Günther
- vor 6 Jahren
- Abrufe
Transkript
1 Vorausgesetzte Grundkenntnisse Einführung in C# Teil 3 Matthias Nübling Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus, dynamische Bindung, etc. Praktische Erfahrung in C++ oder Java Inhalt Vererbung Interfaces Klassenhierarchie und Vererbung Klassen können in einer Klassen- bzw. Vererbungshierarchie angeordnet Oberklasse = Basisklasse; Unterklasse = abgeleitete Klasse Vererbung der Eigenschaften (Datenelemente und Funktionselemente) einer Oberklasse an alle Unterklassen Hinzufügen weiterer Eigenschaften in Unterklassen möglich Überschreiben oder Verdecken von Funktionselementen in Unterklassen möglich Klassenhierarchie und Vererbung Eine Klasse kann nur von einer Oberklasse abgeleitet sein. Sie kann aber mehrere Interfaces implementieren Structs können weder erben noch vererben. Sie können aber mehrere Interfaces implementieren Alle Klassen sind direkt oder indirekt von abgeleitet. Structs sind über Boxing zu kompatibel Klassenelemente können die Sichtbarkeitsattribute,,, oder haben Vererbung public public class class A int inta; a; public public void void F() F() public public class class B: B: A int intb; b; public public void void G() G() A a = new new A(); A(); // // statischer statischertyp: Typ: A; A; dynamischer dynamischertyp: Typ: A a = new new B(); B(); // // statischer statischertyp: Typ: A; A; dynamischer dynamischertyp: Typ: B a.f(); a.f(); // // OK OK a.g(); a.g(); // // Compiler-Fehler Compiler-Fehler B b = new new B(); B(); // // statischer statischertyp: Typ: B; B; dynamischer dynamischertyp: Typ: B b.f(); b.f(); // // OK OK b.g(); b.g(); // // OK OK 1
2 Sichtbarkeitsattribute Sichtbarkeitsattribute Sichtbarkeitsattribut Sichtbarkeit überall (wo auch deklarierender Namespace bekannt ist) nur innerhalb des gleichen Typs (default bei Klasse und Struct) nur innerhalb des gleichen Typs und aller abgeleiteten Typen nur innerhalb des Assemblies (default bei äußeren Typen) oder public public class class A protected protectedint inta; a; public public void void F() F() public public class class B: B: A public publicint intb; b; public public void void G() G() a = 10; 10; // // OK OK da daprotected Console.WriteLine(a=0,b=1, a, a, b); b); B b = new new B(); B(); b.a b.a = 20; 20; // // Compiler-Fehler Compiler-Fehlerda daprotected b.b b.b = 20; 20; // // OK OK dapublic b.g(); b.g(); // // a=10,b=20 a=10,b=20 Typ-Operationen : Prüft, ob der dynamische Typ von der Variablen v kompatibel zum Typ T ist : Typumwandlung (Casting). Falls v nicht kompatibel zu T ist, wird eine Exception geworfen : Typumwandlung. Falls v nicht kompatibel zu T ist, wird zurückgegeben Console.WriteLine(a Console.WriteLine(a is isb); // // true true Console.WriteLine(a Console.WriteLine(a is isa); // // true, true, aber aberwarning B b = (B) (B) a; a; // // OK OK b = a as asb; B; Console.WriteLine(b Console.WriteLine(b is isb); // // true, true, aber aberwarning Typ-Operationen gibt den Laufzeittyp einer Instanz als System.Type-Objekt zurück Der -Operator gibt das System.Type- Objekt eines Typs zurück Type Type t = a.gettype(); a.gettype(); Console.WriteLine(t.Name); // // B t = typeof(b); typeof(b); Console.WriteLine(t.Name); // // B! Überschreiben von Methoden Methoden mit gleicher Schnittstelle können überschrieben Überschreibbare Methode muß als deklariert, überschreibende als Schnittstelle beinhaltet Parameteranzahl, Parametertypen, Rückgabetyp und Sichtbarkeitsattribut (public, protected,...) Das Überschreiben von Methoden ermöglicht die dynamische Bindung beim Aufruf Auch Properties und Indexers können überschrieben Statische Methoden können nicht überschrieben Überschreiben von Methoden public public class class A public public virtual virtualvoid void F() F() Console.WriteLine(A::F); public public class class B: B: A public public override overridevoid void F() F() Console.WriteLine(B::F); a.f(); a.f(); // // B::F B::F (Dynamische (DynamischeBindung) 2
3 Verdecken von Methoden Methoden mit gleicher Schnittstelle können auch verdeckt Verdeckende Methode muß als deklariert Schnittstelle beinhaltet Parameteranzahl und Parametertypen. Der Rückgabetyp kann unterschiedlich sein Beim Verdecken findet immer statische Bindung statt Das Verdecken ist auch bei folgenden Elementen möglich: Properties und Indexers Statische Methoden Gleichnamige Felder. Hier können die Typen unterschiedlich sein Verdecken von Methoden public public class class A public public void void F() F() Console.WriteLine(A::F); public public class class B: B: A public public new newint intf() F() Console.WriteLine(B::F); a.f(); a.f(); // // A::F A::F (Statische (StatischeBindung) Überladen von Methoden Gleichnamige Methoden mit unterschiedlicher Schnittstelle überladen sich Überladene Methoden müssen nicht als deklariert Schnittstelle beinhaltet Parameteranzahl und Parametertypen (ohne Rückgabetyp) Beim Überladen findet immer statische Bindung statt Überladen von Methoden public public class class A public public void void F(double F(doublef) f) Console.WriteLine(A::F: Console.WriteLine(A::F: + f); f); public public class class B: B: A public public void void F(int F(inti) i) Console.WriteLine(B::F: Console.WriteLine(B::F: + i); i); a.f(5); a.f(5); // // A::F A::F (statische (statischebindung) B b = new new B(); B(); b.f(5.5); b.f(5.5); // // A::F A::F (statische (statischebindung) Basisklasse (base) Mit dem Schlüsselwort kann man auf verdeckte Elemente der Basisklasse zugreifen class class Shape Shape int intx, x, y; y; public public override override string string ToString() ToString() return return x= x= + x +,y=,y= + y; y; class class Circle Circle : Shape Shape int intr; r; public public override override string string ToString() ToString() return return base.tostring() base.tostring() +,r=,r= + r; r; Konstruktoren Konstruktoren nicht vererbt Eine Unterklasse kann einen Konstruktor der Basisklasse mit aufrufen Wird nicht verwendet, so wird automatisch der parameterlose Default-Konstruktor der Basisklasse aufgerufen Achtung: Hat eine Klasse keinen Konstruktor, wird implizit ein parameterloser Default-Konstruktor angelegt. Hat sie aber einen Konstruktor, wird kein Default-Konstruktor angelegt. D.h. dieser müßte in diesem Fall explizit definiert Der Destruktor der Basisklasse wird am Schluß immer automatisch aufgerufen 3
4 Konstruktoren class class Shape Shape int intx, x, y; y; public public Shape(): Shape(): this(0, this(0, 0) 0) public public Shape(int Shape(intx, x, int inty) y) this.x this.x = x; x; this.y this.y = y; y; class class Circle: Circle: Shape Shape int intr; r; public public Circle() Circle() this.r this.r = 1; 1; public public Circle(int Circle(intx, x, int inty, y, int intr): r): base(x, base(x, y) y) this.r this.r = r; r; Circle Circle c = new new Circle(); Circle(); Console.WriteLine(c); Console.WriteLine(c); // // x=0,y=0,r=1 x=0,y=0,r=1 c = new new Circle(100, Circle(100, 100, 100, 50); 50); Console.WriteLine(c); Console.WriteLine(c); // // x=100,y=100,r=50 x=100,y=100,r=50 Abstrakte Klassen Eine abstrakte Klasse ist eine Klasse, die nicht instanziiert kann Sie dient als Basisklasse für andere Klassen Sie ist ähnlich zu einem Interface Sie kann abstrakte und nicht-abstrakte Methoden enthalten Abstrakte Methoden haben keinen Anweisungsteil Abstrakte Methoden sind implizit Abstrakte Klassen und Methoden mit dem Schlüsselwort deklariert Auch Properties und Indexers können abstrakt sein! Abstrakte Klassen abstract abstractclass class Shape Shape protected protected int intx, x, y; y; public public Shape(int Shape(intx, x, int inty) y) this.x this.x = x; x; this.y this.y = y; y; public public abstract abstractvoid Draw(); Draw(); class class Circle: Circle: Shape Shape protected protected int intr; r; public public Circle(int Circle(intx, x, int inty, y, int intr): r): base(x, base(x, y) y) this.r this.r = r; r; public public override overridevoid void Draw() Draw() Console.WriteLine(Drawing at at (0,1), (0,1), r=2, r=2, x, x, y, y, r); r); Shape Shape s = new new Circle(100, Circle(100, 100, 100, 50); 50); s.draw(); s.draw(); // // Drawing Drawing at at (100,100), (100,100), r=50 r=50 Versiegelte Klassen Eine versiegelte Klasse ist eine Klasse, die nicht als Basisklasse verwendet kann Verwendung des -Schlüsselwortes sealed sealedclass Circle: Circle: Shape Shape Versiegelte Klassen können nicht gleichzeitig abstrakt sein Alle Structs sind implizit versiegelt Es lassen sich statt ganzer Klassen auch einzelne Methoden, Properties und Indexer versiegeln Gründe für versiegelte Klassen und Methoden: Sicherheit: Semantik kann nicht durch Überschreiben von Methoden verändert Code-Optimierung: u. U. statische statt dynamische Bindung möglich Interface Ein Interface definiert einen Typ. Dieser definiert nur eine Schnittstelle und enthält kein Code. Ein Interface kann die Deklarationen folgender Elemente enthalten: Methoden Properties Indexer Events Interface-Elemente sind implizit Interface-Elemente dürfen nicht sein Interfaces Wird ein Interface von einer Klasse oder einem Struct implementiert, so muß es als Ganzes implementiert. Jede geerbte Interface- Methode (Property, Indexer) muß entweder implementiert oder von einer anderen Klasse geerbt Beim Überschreiben von Interface- Methoden darf man kein angeben, außer man überschreibt eine von einer Klasse geerbte Methode Beim Überschreiben von Interface- Methoden darf man oder angeben (d. h. ein Interface darf durch eine abstrakte Klasse implementiert ) 4
5 Interface Implementierung Interface Implementierung Vererbung Interface- Implementierung!# interface interfaceistorable void void Open(); Open(); void void Change(); Change(); void void Save(); Save(); DocumentStatus DocumentStatusStatus get; get; set; set; public public class class Document: Document: IStorable IStorable public public virtual virtual void void Open() Open() public public void void Change() Change() public public virtual virtual void void Save() Save() public public DocumentStatus DocumentStatusStatus get get set set Interface Verwendung Interfaces Document Document d = new new Document(My Document(MyDocument); Document); d.open(); d.open(); d.change(); d.change(); IStorable IStorables = d as as IStorable; IStorable; if if (s (s!=!= null) null) s.save(); s.save(); Eine Klasse kann nur von einer Klasse erben, aber beliebig viele Interfaces implementieren Interfaces können andere Interfaces durch Ableitung erweitern Interfaces ermöglichen Polymorphismus: Unterschiedliche Klassen können das gleiche Interface implementieren Eine Variable kann von einem Interface-Typ sein Interface Implementierung Beispiel: Documents!#!#!#!#!# $% $% & &! 5
6 Nameskonflikte Nameskonflikte (Alternative 2) Ein Nameskonflikt tritt auf, wenn eine Klasse zwei Interfaces implementiert, die beide gleichnamige Methoden enthalten Alternativen: 1) Die Klasse stellt eine Implementierung für beide Interface-Methoden zur Verfügung 2) Die Klasse stellt für jede der beiden Methoden eine Implementierung zur Verfügung. Hier sind die Methodennamen mit dem Interface-Namen zu qualifizieren (siehe Beispiel) interface interfacei1 I1 void void F(); F(); interface interfacei2 I2 void void F(); F(); class class A: A: I1, I1, I2 I2 void void I1.F() I1.F() Console.WriteLine(I1.F); void void I2.F() I2.F() Console.WriteLine(I2.F); A a = new new A(); A(); a.f(); a.f(); // // Compiler-Fehler Compiler-Fehler I1 I1 i1 i1 = a; a; i1.f(); i1.f(); // // I1.F I1.F I2 I2 i2 i2 = a; a; i2.f(); i2.f(); // // I2.F I2.F Fragen? Uff... 6
Einführung in C# Teil 3. Matthias Nübling
Einführung in C# Teil 3 Matthias Nübling Vorausgesetzte Grundkenntnisse Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,
Syntax. int a; public A() {...} public void F() {...} }
Vererbung 1 Syntax class A { int a; public A() {... public void F() {... // Oberklasse class B : A { // Unterklasse (erbt von A, erweitert A) int b; public B() {... public void G() {... B erbt a und F(),
Kapitel 8 Vererbung. Korbinian Molitorisz. IPD Tichy Lehrstuhl für Programmiersysteme
Kapitel 8 Vererbung Korbinian Molitorisz IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH) Vererbung im Fall von Klassen
Universität Karlsruhe (TH)
Vererbung Vererbung im Fall von Klassen Klassen unterstützen (nur) einfache Vererbung (engl. single inheritance ) Die Klasse object ist die allen gemeine Oberklasse (Hierarchie mit einer einzigen Wurzel)
Vererbung und Polymorphie
Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter
Vererbung & Schnittstellen in C#
Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung
Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen
Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18
Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der
Vererbung Vererbung ist ein Konzept der objektorientierten Programmierung,, die es ermöglicht neue Klassen von bereits vorhandenen Klassen abzuleiten. In einer abgeleiteten Klasse (subclass) muss nur spezifiziert
Klassen und Konstruktoren in Java
Klassen und Konstruktoren in Java class Circle { int r; Circle(int r) { this.r = r; // 1 Circle(Circle c) { this.r = c.r; // 2 Circle() { r = 1; // 3...... Circle a = new Circle(2); // Konstruktor 1 Circle
Einstieg in die Informatik mit Java
1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren
Algorithmen und Datenstrukturen 07
(7. Juni 2012) 1 Besprechung Blatt 6 Fragen 2 Referenzen Referenzsemantik 3 Vererbung Allgemein abstract Interfaces Vererbung in UML 4 Vorbereitung Blatt 7 Anmerkungen Fragen Fragen zu Blatt 6? Referenzsemantik
Vorlesung Datenstrukturen
Vorlesung Datenstrukturen Objektorientierung in C++ (3) Aspekte der Vererbung (1) Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 546 Zuweisung bei Vererbung Dr. Frank Seifert Vorlesung
Einführung in die Programmiersprache Java II
Einführung in die Programmiersprache Java II ??????????? UML OOP "Object oriented programming is bad" - professional retard 90s... UML Entwicklungsziele verschiedenen existierenden objektorienten Modellierungsmethoden
Objektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 2 22.03.2017 Was bisher geschah... Klassen und Objekte Attribute und Methoden Klasse Bruch
Vererbung, Polymorphismus
Vererbung, Polymorphismus INE2 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Automobilbau Firma produziert Limousine Kunde möchte Kombi Wielösen? Möglichkeiten Neudesign
Einstieg in die Informatik mit Java
1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen
Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter
Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener
Programmieren in Java
Einführung in die Objektorientierung Teil 4 Interfaces, innere Klassen und Polymorphie 2 Vererbung im Klassendiagram (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Ware
Vererbung, Polymorphie
Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08
Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.
Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1
Polymorphie. 15. Java Objektorientierung II
432 Polymorphie 15. Java Objektorientierung II Objektorientierung: Verschiedene Aspekte 433 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen zuweisen
Polymorphie. 15. Java Objektorientierung II
446 Polymorphie 15. Java Objektorientierung II Objektorientierung: Verschiedene Aspekte 447 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen zuweisen
Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren
1 Abstrakte Klassen, finale Klassen und Interfaces
1 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik
Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik
Programmieren in Java
Einführung in die Objektorientierung Teil 4 Interfaces, Polymorphie und innere Klassen 2 Vererbung im Klassendiagramm (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Object
Einführung in C# Teil 1. Matthias Nübling
Einführung in C# Teil 1 Matthias Nübling Vorausgesetzte Grundkenntnisse Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte
Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz
Kapitel 13 Abstrakte Methoden und Interfaces 13. Abstrakte Klassen und Interfaces 1. Abstrakte Klassen 2. Interfaces und Mehrfachvererbung Folie 12.2 Abstrakte Methoden und Klassen Manchmal macht es überhaupt
Praxis der Programmierung
Klassenvariablen und -methoden, Vererbung Institut für Informatik und Computational Science Henning Bordihn 1 Klassenvariablen und -methoden 2 Klassenvariablen und -methoden werden mit dem Schlüsselwort
Informatik II Übung 6
Informatik II Übung 6 Gruppe 2 Carina Fuss cfuss@student.ethz.ch 11.4.2018 Carina Fuss 11.4.2018 1 Übung 6 Nachbesprechung Übung 5 Objektorientierung Vererbung, Polymorphie, abstrakte Klassen, Interfaces,
Stack stack = new Stack(); stack.push ("Würstchen"); string s = (string) stack.pop(); Console.WriteLine (s);
D3kjd3Di38lk323nnm Der Typ object object (System.Object) ist die Ausgangsbasisklasse für alle Typen. Jeder Typ kann per Upcast in ein object umgewandelt werden. Um zu zeigen, wie das nützlich sein kann,
Tafelübung 07 Algorithmen und Datenstrukturen
Tafelübung 07 Algorithmen und Datenstrukturen Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Vererbung Grundlagen Abstrakte
Vererbung Was versteht man unter dem Begriff Vererbung?
Was versteht man unter dem Begriff Vererbung? Elternkonstrukt - Datenelemente - Methoden o Deklaration o Definition Kindkonstrukt... Main... Elternkonstrukt b = new Kindkonstrukt() b.fn() Komponenten &
Arten von Klassen-Beziehungen
Arten von Klassen-Beziehungen Untertypbeziehung: Ersetzbarkeit Vererbung von Code aus Oberklasse irrelevant Vererbungsbeziehung: Klasse entsteht durch Abänderung anderer Klassen Ersetzbarkeit irrelevant
HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2
HSR Rapperswil 2001 Markus Rigling Programmieren: Vererbung 1 Variante 2 Inhaltsverzeichnis: 1. Was ist Vererbung...3 2. Anwendung...3 3. Realisierung...3 4. Vorgehensweise zur Erstellung einer Kind-Klasse...3
Objektorientierte Programmierung
Objektorientierte Programmierung WS 2006/2007 Klassen und Vererbung in Java Walter Binder Universität Lugano 2006-11-23 Objektorientierte Programmierung 1 Überblick Konstruktoren Verdecken versus Überschreiben
Programmierkurs Java
Programmierkurs Java Abstrakte Klassen und Methoden & Interfaces Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie
Vererbung. Was versteht man unter dem Begriff Vererbung?
Was versteht man unter dem Begriff Vererbung? Elternkonstrukt - Datenelemente - Methoden o Deklaration o Definition Kindkonstrukt... Main... Elternkonstrukt b = new Kindkonstrukt() b.fn() Komponenten &
Einstieg in die Informatik mit Java
1 / 13 Einstieg in die Informatik mit Java Schnittstellen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 13 1 Einführung 2 Definition einer Schnittstelle 3 Implementierung
Java Vererbung. Inhalt
Java Vererbung Inhalt 1 Zielsetzung... 2 1.1 Bewertung... 2 2 Grundlagen der Vererbung... 2 2.1 Super und Subklassen... 2 3 Überladen von Methoden... 4 3.1 Unterschiedliche Parameter... 4 3.2 Gleiche Parameter
II.4.1 Unterklassen und Vererbung - 1 -
1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.4.1 Unterklassen und Vererbung
JAVA 05: Objektorientierte Konzepte
Lernkartenkurs JAVA 05: Objektorientierte Konzepte panitz Zusammenfassung Dieser Kurs beschäftigt sich mit Grundkonzepten der objektorientierten Programmierung. Was sind Klassen und Objekte? Wie sehen
14. Java Objektorientierung
Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen
C++ - Objektorientierte Programmierung Polymorphie
C++ - Objektorientierte Programmierung Polymorphie hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen C++ - Objektorientierte Programmierung 21.06.16 Seite 1 Polymorphie
Vererbung P rogram m ieren 2 F örster/r iedham m er K apitel 11: V ererbung 1
Vererbung 1 11.1 Motivation und Begriffsdefinitionen 11.2 Vorgehensweise und Implementierung 11.3 Arten von Vererbung 11.4 Konstruktoren 11.5 Abstrakte Klasse 11.6 Verschattung 11.7 Wurzelklasse Object
4. Vererbung Die Klasse Object. Die Klasse Object
4. Vererbung Die Klasse Object Die Klasse Object Alle Klassen ohne explizit deklarierte Superklasse haben die Klasse Object als Superklasse. Object gehört zum Paket java.lang. Object verfügt über einige
Mapra: C++ Teil 6. Felix Gruber, Sven Groß. IGPM, RWTH Aachen. 13. Juni 2017
Mapra: C++ Teil 6 Felix Gruber, Sven Groß IGPM, RWTH Aachen 13. Juni 2017 Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil 6 13. Juni 2017 1 / 22 Was bisher geschah Klassen I Attribute und Methoden
Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält
Programmierkurs C++ Abstrakte Klassen und Methoden
Programmierkurs C++ Abstrakte Klassen und Methoden Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie Obst double
14. Java Objektorientierung. Klassen, Vererbung, Kapselung
427 14. Java Objektorientierung Klassen, Vererbung, Kapselung Objektorientierung: Verschiedene Aspekte 428 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen
Einführung in die Programmierung I. 11. Vererbung. Stefan Zimmer
Einführung in die Programmierung I 11. Vererbung Stefan Zimmer 21.1.2008 Programmcode wiederverwenden Wenn wir einige Klassen geschrieben haben, werden wir dabei Teile davon öfters hingeschrieben haben
Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie
Anwendungsentwicklung mit Java Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Vererbung (1) 2 Problem: Objekte mit gleichen Attributen/Methoden, aber nicht völlig identisch, z.b., LKW, PKW,
Einführung in die Programmierung mit C++
1 Seite 1 Einführung in die Programmierung mit C++ Teil III - Objektorientierte Programmierung 10. Vererbung und Polymorphie Vererbung und Polymorphie in C++ Seite 2 Klassen können von anderen Klassen
Grundlagen Polymorphismus Eigenschaften virtueller Klassen Mehrfachvererbung bei ROOT. Mehrfache Vererbung. Daniel Beneckenstein. 21.
Mehrfache Vererbung Daniel Beneckenstein 21. August 2006 Mehrfache Vererbung Ableitung einer Klasse von beliebig vielen Basisklassen: class A {... }; class B {... }; class C {... }; class D: public A,
Exceptions und Vererbung
Exceptions und Vererbung Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter 2. Exceptions Eigene Exceptions Handling
14. Java Objektorientierung
Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen
2. Vererbung und Polymorphie. Vererbung (1/2) Beispiel (1/2) Vererbung (2/2) Eine Unterklasse wird folgendermaßen definiert
2. Vererbung und Polymorphie Vererbung (1/2) Vererbung mit extends Konstruktoren bei der Vererbung Überladen von Methoden - statische Polymorphie Casten Dynamische Polymorphie Klasse Object Eine Unterklasse
Programmierpraktikum 3D Computer Grafik
Dipl.Inf. Otmar Hilliges Programmierpraktikum 3D Computer Grafik Einführung in C++ Teil II: Klassen, Objekte, Funktionen und Vererbung. Funktionen [Rückgabetyp] [Name] ([Parameter]) { } Wichtig: Funktionen
DAP2-Programmierpraktikum Einführung in C++ (Teil 2)
DAP2-Programmierpraktikum Einführung in C++ (Teil 2) Carsten Gutwenger 18. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Dynamischer Speicher Klassen und
2.13 Vererbung. Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/ Article
2.13 Vererbung Klassen modellieren Objekte der realen Welt. Diese sind oft hierarchisch gegliedert. Beispiel: Ein Verlag bietet Bücher und CDs an. Beide Medien sind Artikel des Verlages. Book author: String
Objektorientierte Programmierung III
Objektorientierte Programmierung III OOP Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten. Vererbung: Erlaubt Code zwischen verwandten Typen
II.4.1 Unterklassen und Vererbung - 1 -
n 1. Grundelemente der Programmierung n 2. Objekte, Klassen und Methoden n 3. Rekursion und dynamische Datenstrukturen n 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.4.1 Unterklassen und
Java Einführung Vererbung und Polymorphie. Kapitel 13
Java Einführung Vererbung und Polymorphie Kapitel 13 Inhalt Klassifikation (UML) Implementierung von Vererbungshierarchien Überschreiben von Methoden Polymorphismus: Up-Casting und Dynamisches Binden Schlüsselwort
Vererbung und Polymorphie
page1 Vererbung und Polymorphie Florian Adamsky, B Sc florianadamsky@iemthmde http://florianadamskyit/ cbd So wareentwicklung im SS 2014 page2 Outline 1 Ein ührung 2 Vererbung Formen der Vererbung 3 Polymorphie
7. Übung Informatik II - Objektorientierte Programmierung
7. Übung Informatik II - Objektorientierte Programmierung 29. Mai 2015 Inhalt 1 2 3 Übersicht 1 2 3 Idee Menschen nehmen die Welt in Form von Objekten wahr manche Objekte haben gleiche Eigenschaften, hierüber
3D Programmierpraktikum: Einführung in C++ - Teil 2
3D Programmierpraktikum: Einführung in C++ - Teil 2 Praktikum 3D Programmierung Sebastian Boring, Otmar Hilliges Donnerstag, 4. Mai 2006 LMU München Medieninformatik Boring/Hilliges 3D Programmierpraktikum
1. Abstrakte Klassen
1. Abstrakte Klassen Lernziele 1. Abstrakte Klassen Lernziele: Das Konzept abstrakter Klassen und abstrakter Methoden kennen und verstehen, in der Lage sein, abstrakte Klassen und Methoden in Java zu formulieren,
Einführung in die Programmiersprache Java II
Einführung in die Programmiersprache Java II ??????????? UML Klassendiagramm zeigt Klassen und ihre Beziehungen untereinander Visualisierung und Modellierung der statischen Struktur eines Systems Klassen
Programmierung und Angewandte Mathematik
Programmierung und Angewandte Mathematik C++ /Scilab Programmierung und Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens SS 2012 Ziele Sie wissen, was Vererbung
Programmierung Nachklausurtutorium
Programmierung Nachklausurtutorium Laryssa Horn, Tim Engelhardt 20 März 2018 Klassen Wofür wir Klassen brauchen: Definieren ein Bauplan eines Objektes Bauplan enthält Attribute und Methoden Klasse Beispiel
Vorkurs Informatik WiSe 15/16
Java 7 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 21.10.2015 Technische Universität Braunschweig, IPS Überblick OO in Java Vererbung Abstrakte Klassen und Interfaces 21.10.2015 Dr. Werner Struckmann
Objektorientierung. Marc Satkowski 20. November C# Kurs
Objektorientierung Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Weiterführende Verzweigungen Tertiäre-Verzweigung switch case 2. Schleifen Zählschleife (for) break & continue 3. Objektorientierung
Angewandte Mathematik in OOP WS 2011/12. Abschluss-Test
Angewandte Mathematik in OOP WS 2011/12 Abschluss-Test 012 6 5 4 5 6 Aufgabe 1 (9 Punkte 1 Punkt je Antwort) Bitte jeweils eine Antwort ankreuzen (je nach Fragestellung die richtige oder falsche): a.)
12 Abstrakte Klassen, finale Klassen und Interfaces
12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
Liste Programmieren Java Überblick
Liste Programmieren Java Überblick 1 Was ist Java? 2 Klassen und Objekte 4 Schnittstellen 5 Innere Klassen 6 Exceptions 7 Funktionsbibliothek 8 Datenstrukturen und Algorithmen 9 Ein-/Ausgabe 10 Threads
C++ Klassen, Vererbung. Philipp Lucas. Sebastian Hack. Wintersemester 2008/09. saarland.
C++ Klassen, Vererbung Philipp Lucas phlucas@cs.uni-sb.de Sebastian Hack hack@cs.uni-sb.de Wintersemester 2008/09 saarland university computer science 1 Inhalt Klassen in C++ Sichtbarkeit Erzeugen von
Einführung in die Programmierung
Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität
Das Interface-Konzept am Beispiel der Sprache Java
Das Interface-Konzept am Beispiel der Sprache Java Klaus Kusche, November 2013 Inhalt Motivation: Wozu braucht man Interfaces? Interfaces in Java Was spricht gegen die große Lösung? Voraussetzungen Kenntnisse
Untertypen, Vererbung, Sichtbarkeit A01 OOP. Untertypen, Vererbung, Sichtbarkeit
2013-10-30 Untertypen, Vererbung, Sichtbarkeit 1 185.A01 OOP Untertypen, Vererbung, Sichtbarkeit 2013-10-30 Untertypen, Vererbung, Sichtbarkeit 2 OOP Abstrakte Klassen Polygon ւ ց Triangle Square Hexagon
OOP und Angewandte Mathematik (Praktikum 1) Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik
(Praktikum 1) Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Friend Klassen In einigen Fällen kann es notwendig werden, dass andere Klassen oder Funktionen
Vererbung. Programmierung 1. Stephan Kleuker 423
Vererbung Stephan Kleuker 423 Erweiterung: Austauschstudierende - Vererbung objektorientierte Antwort heißt: Erweiterung einer existierenden Klasse (meist Vererbung genannt) Der Zugriff auf Teile der erweiterten
Java I Vorlesung Vererbung und Sichtbarkeit
Java I Vorlesung 4 Vererbung und Sichtbarkeit 17.5.2004 Vererbung Überladen, Überschreiben, Verstecken, Verschatten Zugriffskontrolle Statische Members Wiederholung: OOP Programme bestehen aus Klassen.
FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0
9 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Gerüstbeispiel Ein Duo, Quarto oder Sexto ist ein Gerüst. Die Klassen Duo, Quarto und Sexto sollen durch Vererbung
Grundzüge der Programmierung. Wiederverwendung VERERBUNG
Grundzüge der Programmierung Wiederverwendung VERERBUNG Inhalt dieser Einheit Syntax: Vererbung in Java Superklassen - Subklassen Konstruktorenaufruf in Subklassen super, abstract und final 2 Code-Reuse
Einführung in die Programmierung Wintersemester 2008/09
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Virtuelle Methoden Vererbung bisher: Definition
Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung
Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]
14 Abstrakte Klassen, finale Klassen, Interfaces
Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse
Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Schnittstellen, Vererbung & Polymorphismus für Fortgeschrittene
Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Schnittstellen, Vererbung & Polymorphismus für Fortgeschrittene Motivation Aufgabe: Finanzbuchhaltungssystem für internationale Hotelkette
14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen
Auswertung von Ausdrücken Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt.
Kapitel 4: Klassen und Unterklassen
Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 4: Klassen und Unterklassen Folie 54 : Unterklassen Die Bildung von Unterklassen und das Konzept der Vererbung sind
14 Abstrakte Klassen, finale Klassen, Interfaces
Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse
OOP. Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten.
Polymorphismus OOP Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten. Vererbung: Erlaubt Code zwischen verwandten Typen wiederverwendet sein.
4. Vererbung. Idee der Vererbung. Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende Klassen vor:
4. Vererbung Grundlagen der Vererbung 4. Vererbung 4. Vererbung Grundlagen der Vererbung Idee der Vererbung Wir wollen ein Verwaltungsprogramm für CDs und Videos entwickeln. Wir stellen uns dazu folgende
II.4.1 Unterklassen und Vererbung - 1 -
1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.4.1 Unterklassen und Vererbung
6. Globalübung (zu Übungsblatt 8)
6. Globalübung (zu Übungsblatt 8) Inhalt: Klassenhierarchien Verdecken von Attributen Überschreiben von Methoden Codeanalyse Analyse von JAVA-Programmen Semestralklausur Klausurtermin: Mittwoch 11.01.2006