Virtual, override
När man vill kunna låta en subklass ha en egen version av en metod som finns i basklassen så använder man virtual och override.
Virtual används för att markera metoder i basklassen som får "skrivas över" av subklasserna.
Override används för att ge en subklass en egen version av en metod från basklassen som markerats som virtuell.
För att Override ska fungera så måste det finnas en metod i basklassen som ser likadan ut (samma namn, samma returtyp, samma antal parametrar med samma datatyper) och som är virtual.
Syftet med detta är att göra så att man inte måste skapa nya metoder åt subklasserna när de ska fungera annorlunda än basklassen. Det här är en av byggstenarna för polymorfism.
Base
Base låter en subklass få tillgång till basklassens version av en metod.
När en Fighter-instans' Attack-metod anropas i koden ovan, så anropas först basklassens Attack-metod, som returnerar 5. Den femman multipliceras med 2 och resultatet returneras. Med andra ord:
I exemplet ovan blir damage lika med 10.
Last updated