homedukeOOP mit Java: Motivation für Mehrfachvererbung Prof. Dr. Uwe Schmidt FH Wedel

Motivation für Mehrfachvererbung

weiter

weiter

Motivation

Idee
ein Objekt kann die Eigenschaften aus mehreren Klassen beziehen

ein Objekt kann mehrere Schnittstellen besitzen

weiter
merke
Beliebtes Beispiel in der OO-Literatur:

Es gibt FleischFresser
und PflanzenFresser,
AllesFresser besitzen die Eigenschaften von beiden.

weiter
merke
Autos und
Schiffe sind Unterklassen von Fahrzeug,
AmphibienFahrzeug ist sowohl Auto als auch Schiff.
weiter
merke
MehrfachVERerbung ist eigentlich der falsche Begriff.
merke
MehrfachBEerbung beschreibt die Richtung des Erbens präzise.
in C++ und Eiffel
Mehrfachvererbung ohne Einschränkungen erlaubt
weiter
Beispiel
class Point {
private:
 
  double x;
  double y;
 
public:
 
  Point(double x1double y1) {
    x = x1;
    y = y1;
  }
  double getX() const { return x}
  double getY() const { return y}
};
 
class Color {
private:
 
  int c;
 
public:
 
  Color(int c1) {
    c = c1;
  }
  int getColor() const { return c}
};
 
class ColoredPoint : public Point,
                     public Color
{
public:
      ColoredPoint(double xdouble yint c)
        : Point(x,y)
          Color(c) {
      }
};
 
 
 
void f() {
  ColoredPoint * cp =
    new ColoredPoint(1.0,2.0,255);
 
  cp->getX();     // --> 1.0
  cp->getY();     // --> 2.0
  cp->getColor()// --> 255
}
 
weiter
gut
mit Mehrfachvererbung kann eine Klasse ohne großen Aufwand aus bestehenden Klassen zusammengesetzt werden.

Die beerbende Klasse enthält alle Datenfelder und alle Methoden aus allen beerbten Klassen.

weiter
merke
Verständlichkeit?

Programmteile über viele Stellen verstreut.

weiter
merke
schwierig zu implementieren!
weiter

Letzte Änderung: 14.02.2012
© Prof. Dr. Uwe Schmidt
Prof. Dr. Uwe Schmidt FH Wedel