Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
1 Einführung
2 Grundlagen
3 Fehlerbehandlung
4 Erweiterte Grundlagen
5 Objektorientierte Programmierung
6 Wichtige Klassen in .NET
7 Weitere Elemente eines Windows-Programms
8 Datenbank-Anwendungen mit ADO.NET
9 Internet-Anwendungen mit ASP.NET
10 Zeichnen mit GDI+
11 Neues in Visual Basic 2008
12 Beispielprojekte
A Installation
B Lösungen der Übungsaufgaben
Stichwort

Download:
- ZIP, ca. 8,4 MB
Buch bestellen
Ihre Meinung?

Spacer
 <<   zurück
Einstieg in Visual Basic 2008 von Thomas Theis
Inkl. zahlreicher Beispiele und Uebungen
Buch: Einstieg in Visual Basic 2008

Einstieg in Visual Basic 2008
geb., mit DVD
442 S., 24,90 Euro
Galileo Computing
ISBN 978-3-8362-1192-5
Online bestellenJetzt online bestellen
* versandkostenfrei in (D) und (A)
Pfeil 5 Objektorientierte Programmierung
  Pfeil 5.1 Was ist Objektorientierung?
  Pfeil 5.2 Klasse, Eigenschaft, Methode, Objekt
    Pfeil 5.2.1 Objektverweis und Instanz
  Pfeil 5.3 Eigenschaftsmethode
  Pfeil 5.4 Konstruktor
  Pfeil 5.5 Referenzen und Werte
    Pfeil 5.5.1 Objekte vergleichen
  Pfeil 5.6 Statische Elemente
  Pfeil 5.7 Delegates
  Pfeil 5.8 Ereignisse
  Pfeil 5.9 Namespaces
  Pfeil 5.10 Vererbung
  Pfeil 5.11 Konstruktoren bei Vererbung
  Pfeil 5.12 Polymorphie
  Pfeil 5.13 Schnittstellen


Galileo Computing - Zum Seitenanfang

5.10 Vererbung  topZur vorigen Überschrift

Eine Klasse kann ihre Elemente an eine andere Klasse vererben. Dieser Mechanismus wird häufig angewendet, um bereits vorhandene Definitionen übernehmen zu können. Man erzeugt durch Vererbung eine Hierarchie von Klassen, die die Darstellung von Objekten mit teils übereinstimmenden, teils unterschiedlichen Merkmalen ermöglichen.

Erben

Visual Basic stellt bereits eine große Menge an Klassen zur Verfügung, die in eigenen Programmen geerbt werden können. Dadurch kann man komplexe Objekte mit ihrem Verhalten, ihren Eigenschaften und Möglichkeiten in sein eigenes Programm einfügen.

In den Beispielen dieses Buchs wurde dies bereits vielfach praktiziert. So wurde beim Einfügen eines Formulars von der Klasse für Formulare geerbt. Alle Eigenschaften eines Formulars (Titel, Hintergrundfarbe, Größe, ...), alle Methoden eines Formulars (New(), Finalize(), ...) und alle Ereignisse eines Formulars (Click, Load, Activated, ...) stehen nach dem Einfügen zur Verfügung.

Im nachfolgenden Beispiel wird eine Klasse PKW definiert, mit deren Hilfe die Eigenschaften und Methoden von Personenkraftwagen dargestellt werden sollen. Bei der Erzeugung bedient man sich der existierenden Klasse Fahrzeug, in der ein Teil der gewünschten Eigenschaften und Methoden bereits vorhanden sind. Bei der Klasse PKW kommen noch einige Merkmale hinzu.

Basisklasse, abgeleitete Klasse

In diesem Zusammenhang nennt man die Klasse PKW auch eine spezialisierte Klasse. Die Klasse Fahrzeug nennt man eine allgemeine Klasse. Von der Klasse PKW aus gesehen ist die Klasse Fahrzeug eine Basisklasse. Von der Klasse Fahrzeug aus gesehen ist die Klasse PKW eine abgeleitete Klasse.

Bei der Projekterzeugung werden beide Klassen in eigenen Klassendateien gespeichert, jeweils über den Menüpunkt ProjektKlasse hinzufügen.

Zunächst die Basisklasse Fahrzeug:

Public Class Fahrzeug 
   Dim geschwindigkeit As Integer 
 
   Sub beschleunigen(ByVal wert As Integer) 
      geschwindigkeit += wert 
   End Sub 
   Function ausgabe() As String 
      ausgabe = "Geschwindigkeit: " _ 
         & geschwindigkeit & vbCrLf 
   End Function 
End Class

Davon abgeleitet wird die Klasse PKW:

Public Class PKW 
      Inherits Fahrzeug 
   Dim insassen As Integer 
 
   Sub einsteigen(ByVal anzahl As Integer) 
      insassen += anzahl 
   End Sub 
 
   Sub aussteigen(ByVal anzahl As Integer) 
      insassen -= anzahl 
   End Sub 
 
   Overloads Function ausgabe() As String 
      ausgabe = "Insassen: " & insassen _ 
         & vbCrLf & MyBase.ausgabe() 
   End Function 
End Class

Zur Erläuterung:

    Inherits

  • Nach dem Beginn der Klassendefinition (Public Class PKW) folgt in der nächsten Zeile Inherits Fahrzeug. Dadurch wird gekennzeichnet, dass die Klasse PKW alle Elemente von der Klasse Fahrzeug erbt.
  • Die Klasse PKW verfügt nun über zwei Eigenschaften: die geerbte Eigenschaft geschwindigkeit und die eigene Eigenschaft insassen.
  • Außerdem verfügt sie über fünf Methoden: die geerbten Methoden beschleunigen() und ausgabe(), sowie die eigenen Methoden ein-steigen(), aussteigen() und ausgabe().

    Overloads

  • Da die Methode ausgabe() bereits in der Basisklasse mit der gleichen Signatur vorkommt, sollte die gleichnamige Methode der abgeleiteten Klasse durch Overloads besonders gekennzeichnet werden. Damit teilt man mit, dass diese Methode eine andere, gleichnamige Methode überlädt.

    MyBase

  • In der Methode ausgabe() der Klasse PKW wird allerdings weiterhin die Methode der Basisklasse benötigt, denn sie soll alle Eigenschaften ausgeben und sich dabei möglichst der bereits vorhandenen Methode ausgabe() der Basisklasse bedienen. Die Elemente der Basisklasse erreicht man in einer abgeleiteten Klasse über MyBase.

In dem Programm, das diese Klassen benutzt, werden zwei Objekte erzeugt, ein Objekt der Basisklasse und ein Objekt der abgeleiteten Klasse.

Abbildung 5.11  Objekte der Basisklasse und der abgeleiteten Klasse

Public Class frm0508 
   Private Sub cmdAnzeigen_Click( ... ) Handles ... 
      Dim vespa As New Fahrzeug 
      Dim fiat As New PKW 
 
      vespa.beschleunigen(35) 
      lblAnzeige.Text = vespa.ausgabe() 
 
      lblAnzeige.Text &= vbCrLf & fiat.ausgabe() 
      fiat.einsteigen(3) 
      fiat.beschleunigen(30) 
      lblAnzeige.Text &= vbCrLf & fiat.ausgabe() 
   End Sub 
End Class

Zur Erläuterung:

  • Im Programm werden zwei Objekte verschiedener Klassen erzeugt.
  • Wenn eine Methode für ein Objekt einer abgeleiteten Klasse aufgerufen wird, dann wird diese Methode zunächst in dieser abgeleiteten Klasse gesucht. Wird sie dort gefunden wird, so wird sie aufgerufen. Andernfalls wird sie eine Ebene höher in der Klasse gesucht, von der die Klasse des Objekts abgeleitet wurde. Falls sie dort auch nicht gefunden wird, wird wiederum die zugehörige Basisklasse durchsucht usw.
  • Für das Objekt fiat der Klasse PKW werden die Methoden ausgabe() und einsteigen() aufgerufen. Diese werden zuerst in der Klasse PKW gefunden und ausgeführt.
  • Innerhalb der Methode ausgabe() der Klasse PKW wird die Methode der Basisklasse Fahrzeug über MyBase aufgerufen und ausgeführt.
  • Die Methode beschleunigen() wird für das Objekt fiat ebenfalls zunächst in der Klasse PKW gesucht, aber nicht gefunden. Da PKW von Fahrzeug geerbt hat, wird die Methode nun in der Klasse Fahrzeug gesucht, dort gefunden und ausgeführt.

Hinweis: Eigenschaften der Basisklasse sind von der abgeleiteten Klasse aus normalerweise nicht erreichbar, da sie in der Basisklasse gekapselt sind. Sie wurden mit dem Schlüsselwort Dim deklariert, das gleichbedeutend ist mit Private. Möchte man sie aber dennoch erreichbar machen, so hat man zwei Möglichkeiten:

  • Man deklariert die Eigenschaften mit Public. Dann sind sie, wie standardmäßig auch die Methoden, öffentlich zugänglich und von überall aus zu erreichen. Dies widerspricht aber dem Prinzip der Datenkapselung vollständig.

    Protected

  • Man deklariert die Eigenschaften mit Protected. Nun sind sie von der Klasse, in der sie deklariert wurden, und von allen aus dieser abgeleiteten Klassen aus erreichbar. Somit bleibt noch eine gewisse Datenkapselung gewährleistet.


Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






 <<   zurück
  Zum Katalog
Zum Katalog: Einstieg in Visual Basic 2008






Einstieg in Visual Basic 2008
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Visual Basic 2008






 Visual Basic 2008


Zum Katalog: Einstieg in Visual C++ 2008






 Einstieg in
 Visual C++ 2008


Zum Katalog: Einstieg in Visual C# 2008






 Einstieg in
 Visual C# 2008


Zum Katalog: Visual C# 2008






 Visual C# 2008


Zum Katalog: Visual C# - Video-Training






 Visual C# -
 Video-Training


Zum Katalog: Einstieg in PHP 5 und MySQL 5






 Einstieg in PHP 5
 und MySQL 5


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo





Copyright © Galileo Press 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de