Logo

Objective-C, Xcode und Cocoa Tutorial


 

 

EIN TUTORIAL ZU OBJECTIVE-C, XCODE UND COCOA

 

Kapitel 7 - Fortsetzung

Überschreiben von Methoden

Was wir bisher noch nicht besprochen haben ist die Frage, ob eine vererbte Methode auch einfach entfernt werden kann, wenn ich das will? Die Antwort ist: nein! Aber Sie können eine vererbte Methode überschreiben. Nehmen Sie dazu das einfache Beispiel zu Beginn des Abschnittes her.

Programm 7.3
-----------------------------------------------------------------------------------------------------------------

#import <stdio.h>
#import <objc/Object.h>
@interface ErsteKlasse: Object
{
      int x;     
}
- (void) setzeZahl;
@end

@implementation ErsteKlasse;
- (void) setzeZahl
{
      x = 10;
}
@end

@interface ZweiteKlasse: ErsteKlasse
- (void) druckeZahl;
- (void) setzeZahl;
@end

@implementation ZweiteKlasse;

- (void) setzeZahl
{
      x = 20;
}

- (void) druckeZahl
{
      printf ("Die Zahl x hat sich geändert von einem Wert von 10 auf %i\n", x);
}
@end

int main (int argc, char *argv[])
{
      ZweiteKlasse *z = [[ZweiteKlasse alloc]init];
      [z setzeZahl];
      [z druckeZahl];
      [z free];
      return 0;
}

Programm 7.3 output
-----------------------------------------------------------------------------------------------------------------

Die Zahl x hat sich geändert von einem Wert von 10 auf 20

test79 has exited with status 0.
-----------------------------------------------------------------------------------------------------------------



Haben Sie den Unterschied zum ersten Programm bemerkt? Zuerst haben Sie die ErsteKlasse von der Superklasse Object gebildet. Dann haben Sie dieser Klasse die Methode setzeZahl hinzugefügt. Im Anschluss daran haben sie die neue Klasse ZweiteKlasse gebildet. Diese hat gemäß den Regeln der Vererbung die Methode setzeZahl von ErsteKlasse übernommen. Bei der Implementierung von ZweiteKlasse haben Sie - im Unterschied zu Programmbeispiel 7.1 - die Methode setzeZahl nicht einfach übernommen sondern durch eine "neue" Methode mit dem gleichen Methodennamen setzeZahl hinzugefügt. Dadurch haben Sie die Methode setzeZahl von ErsteKlasse durch die gleichnamige Methode setzteZahl in der Implementierung von ZweiteKlasse ersetzt, man spricht in einem solchen Fall von überschreiben.


weiter ---- Objective-C Index ---- Startseite----zurück


Das Inhaltsverzeichnis

EINSTIEG
KAPITEL 1: SCHRITT FÜR SCHRITT ZUM ERSTEN PROGRAMM
KAPITEL 2: OBJEKTE, KLASSEN, INSTANZEN UND METHODEN
KAPITEL 3: DIE VERSCHIEDENEN DATENTYPEN
KAPITEL 4: DIE PROGRAMMSCHLEIFEN
KAPITEL 5: ENTSCHEIDE DICH, ENTWEDER ODER....
KAPITEL 6: UND NOCHMALS KLASSEN
KAPITEL 7: VERERBUNG
KAPITEL 8: POLYMORPHISMUS, DYNASCHISCHE TYPISIERUNG UND DYNAMISCHES BINDEN
KAPITEL 9: NOCH MEHR DATENTYPEN UND VARIABLEN
KAPITEL 10: CATEGORIES, POSING AND PROTOCOL
KAPITEL 11: DER PRÄPROZESSOR

 

 

 

Links