Rheinwerk Computing < openbook > Rheinwerk 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 Beispielprojekte
12 Windows Presentation Foundation
13 Windows Store-Apps für Windows 8
A Installation und technische Hinweise
B Lösungen der Übungsaufgaben
C Inhalt der Buch-DVD
D Der Autor
Stichwort

Jetzt Buch bestellen
Ihre Meinung?

Spacer
Einstieg in Visual Basic 2012 von Thomas Theis
Ideal für Programmiereinsteiger geeignet
Buch: Einstieg in Visual Basic 2012

Einstieg in Visual Basic 2012
Rheinwerk Computing
579 S., 3., aktualisierte und erweiterte Auflage 2013, brosch., mit DVD
24,90 Euro, ISBN 978-3-8362-1959-4
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, Vergleiche und Typen
Pfeil 5.5.1 Objekte vergleichen
Pfeil 5.5.2 Typ eines Objekts ermitteln
Pfeil 5.5.3 Typ eines Objekts durch Vergleich ermitteln
Pfeil 5.6 Delegates
Pfeil 5.7 Statische Elemente
Pfeil 5.8 Vererbung
Pfeil 5.9 Konstruktoren bei Vererbung
Pfeil 5.10 Polymorphie
Pfeil 5.11 Schnittstellen
Pfeil 5.11.1 Vorhandene Schnittstellen

Rheinwerk Computing - Zum Seitenanfang

5.8 Vererbung

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.

Visual Basic stellt bereits eine große Menge an Klassen zur Verfügung, die in eigenen Programmen geerbt werden können. Dadurch können Sie komplexe Objekte mit ihrem Verhalten, ihren Eigenschaften und Möglichkeiten in Ihr 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 (Text, BackColor, Size, ...), alle Methoden eines Formulars (Close(), ...) und alle Ereignisse eines Formulars (Click, Load, Activated, ...) stehen nach dem Einfügen zur Verfügung.

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

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(wert As Integer)
geschwindigkeit += wert
End Sub

Function ausgabe() As String
ausgabe = "Geschwindigkeit: " &
geschwindigkeit & vbCrLf
End Function
End Class

Listing 5.16 Projekt »Vererbung«, Basisklasse »Fahrzeug«

Davon abgeleitet wird die Klasse PKW:

Public Class PKW
Inherits Fahrzeug

Dim insassen As Integer

Sub einsteigen(anzahl As Integer)
insassen += anzahl
End Sub

Overloads Function ausgabe() As String
ausgabe = "Insassen: " & insassen &
vbCrLf & MyBase.ausgabe()
End Function
End Class

Listing 5.17 Projekt »Vererbung«, abgeleitete Klasse »PKW«

Zur Erläuterung:

  • 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 vier Methoden: die geerbten Methoden beschleunigen() und ausgabe(), sowie die eigenen Methoden einsteigen() und ausgabe().
  • 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 teilen Sie mit, dass diese Methode eine andere, gleichnamige Methode der Basisklasse überlädt.
  • In der Methode ausgabe() der Klasse PKW benötigen Sie allerdings weiterhin die Methode der Basisklasse, denn sie soll alle Eigenschaften ausgeben und sich dabei möglichst der bereits vorhandenen Methode ausgabe() der Basisklasse bedienen. Die Elemente der Basisklasse erreichen Sie in einer abgeleiteten Klasse über MyBase.

Im Projekt Vererbung, das diese Klassen benutzt, werden zwei Objekte erzeugt, ein Objekt der Basisklasse und ein Objekt der abgeleiteten Klasse, siehe Abbildung 5.9.

Abbildung

Abbildung 5.9 Objekte der Basisklasse und der abgeleiteten Klasse

Der Programmcode:

Public Class Form1
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

Listing 5.18 Projekt »Vererbung«, Nutzung der Klassen

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. Falls sie dort gefunden wird, so wird sie aufgerufen. Anderenfalls wird sie eine Ebene höher, also 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öchten Sie sie aber dennoch erreichbar machen, so haben Sie zwei Möglichkeiten:

  • Sie deklarieren die Eigenschaften mit Public. Dann sind sie, wie standardgemäß auch die Methoden, öffentlich zugänglich und von überall aus zu erreichen. Dies widerspricht aber dem Prinzip der Datenkapselung.
  • Deklarieren Sie 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.


Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

<< zurück
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Einstieg in Visual Basic 2012

Einstieg in Visual Basic 2012
Jetzt Buch bestellen


 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Rheinwerk-Shop: Visual Basic 2012






 Visual Basic 2012


Zum Rheinwerk-Shop: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Rheinwerk-Shop: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


Zum Rheinwerk-Shop: Java ist auch eine Insel






 Java ist auch
 eine Insel


Zum Rheinwerk-Shop: Einstieg in Python






 Einstieg in Python


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo





Copyright © Rheinwerk Verlag GmbH 2013
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.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern