ich war hier: ObjProg06Vererbung

Version [26627]

Dies ist eine alte Version von ObjProg06Vererbung erstellt von RonnyGertler am 2013-04-29 19:51:23.

 

 (image: http://wdb.fh-sm.de/uploads/QualipaktLehre/BMBF_Logo_klein.jpg)

Objektorientierte Programmierung - Kapitel 6 - Vererbung


Inhalte von Dr. E. Nadobnyh

6.1. Grundbegriffe


Vererbung, abgeleitete Klasse, Basisklasse


Die Vererbung ist ein effizienter Mechanismus, mit dem aus bereits existierenden Klassen neue Klassen gebildet werden können.
Die neue Klasse heißt abgeleitete Klasse (Unterklasse).

Die alte Klasse heißt Basisklasse (Oberklasse).

Jedes Objekt der abgeleiteten Klasse enthält ein anonymes Objekt der Basisklasse, welches als Teilobjekt (Subobjekt) bezeichnet wird.

Die abgeleitete Klasse kann zusätzliche Attribute und Methoden enthalten. Diese Möglichkeit wird als Abweichung (Erweiterung) bezeichnet.

 (image: https://ife.erdaxo.de/uploads/ObjProg06Vererbung/oop29.gif)


class A


Beispiel in C

{   private:  int x;
     public:    int ma();
};
 
class B :public A
{   private:  int y;  
     public:    int mb();
};
 
main()
{    B b1;  
}


 (image: https://ife.erdaxo.de/uploads/ObjProg06Vererbung/oop30.gif)


UML- Klassendiagramm


 (image: https://ife.erdaxo.de/uploads/ObjProg06Vererbung/oop31.gif)


Zugriff auf Teilobjekt der Basisklasse


 (image: https://ife.erdaxo.de/uploads/ObjProg06Vererbung/oop32.gif)


public- Vererbung


Bei der public- Vererbung steht die abgeleitete Klasse zur Basisklasse in einer Ist-Beziehung.

Ein Objekt b1 der abgeleitete Klasse B ist auch ein (spezielles) Objekt der Basisklasse A, weil b1 alle Methoden der Basisklasse A automatisch besitzt und sich so wie ein Objekt der Basisklasse A verhält.

 (image: https://ife.erdaxo.de/uploads/ObjProg06Vererbung/oop33.gif)


Schnittstelle abgeleiteter Klasse


Die Deklarationen von allen public- Methoden bilden die öffentliche Schnittstelle (Interface). Durch diese Methoden kommuniziert ein Objekt mit der Umgebung.

Die öffentliche Schnittstelle der abgeleiteten Klasse besteht aus:

1) der öffentlichen Schnittstelle der Basisklasse und

2) den in der abgeleiteten Klasse zusätzlich deklarierten public-Methoden (und public- Attributen).


Vererbung der Schnittstelle


Die Schnittstelle der Basisklasse wird geerbt, wenn die öffentliche Methoden der Basisklasse durch Objekte der abgeleiteten Klasse aufgerufen werden dürfen.


Vererbung der Implementierung


Die Implementierung der Basisklasse wird geerbt, wenn öffentliche Methoden der Basisklasse zwar innerhalb der abgeleiteten Klasse aufgerufen werden dürfen. Der Code der Basisklasse wird dabei wiederverwendet.


Varianten der Vererbung


1) Öffentliche Vererbung
Vererbung von Schnittstelle und Implementierung.

class A{ };
class B :public A { };


2) Private Vererbung
Reine Vererbung derImplementierung.

class A{ };
class B :private A { };


3) Einfache Vererbung
Eine Klasse erbt von einer anderen Klasse.

class A{ };
class B :public A { };


4) Mehrfachvererbung
Eine Klasse erbt von mehreren Klassen.

class A{ };   class B{ };
class C :public A, public B { };
































CategoryObjProg
Diese Seite wurde noch nicht kommentiert.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki