Kann mir jemand @override erklären?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Nehmen wir an, du hast eine Klasse für Tiere. Diese Klasse hat eine Methode zum Fortbewegen:

class Animal{
  public void Move(){
    System.out.println("I'm moving!");
  }
}

Nun erstellst du eine weitere Klasse für Fische. Da Fische Tiere sind, lässt du sie von Animal erben.

class Fish extends Animal{
}

Da Fish eine Tochterklasse von Animal ist, kann ein Fish alles tun, was ein Animal auch kann. Insbesondere kann ein Fish die Move-Methode aufrufen und würde dann "I'm moving!" auf die Konsole schreiben.

Jetzt fällt dir aber auf, dass sich ein Fish anders bewegt als z.B. Landtiere. Du möchtest also das Verhalten der Move-Methode für den Fish ändern. Hierfür kannst du die geerbte Move-Methode überschreiben, mittels @override:

class Fish extends Animal{
  @Override public void Move(){
    System.out.println("I'm swimming!");
  }
}

Streng genommen ist das @Override für dieses Verhalten nicht notwendig - es hilft aber beim Verständnis des Codes und macht den Code robuster gegen Rechtschreibfehler, da der Compiler dich darauf aufmerksam macht wenn du eine Methode Overriden willst, die es gar nicht gibt.


Fischkopf289 
Fragesteller
 24.11.2022, 09:04

Das ist die beste Erklärung die ich gehört habe. Ich verstehe es jetzt. Danke!

1