F19 - Polymorfism och dynamisk bindning Flashcards
Vad innebär polymorfism?
att olika objekt har gemensamma beteenden
Ge exempel på polymorfism
- Metodöverskuggnig
- Dynamisk bindning
- Abstrakta klasser
- Interface
- Överlagring
Vilka klasser kan definieras som static?
Nästlade (inre) klasser
Vad är speciellt med statiska metoder?
Dessa kan anropas utan att ett objekt av klassen har skapats
Hur anropar man statiska metoder?
klassNamnet.metodNamnet( );
Vad tillhör en static metod till skillnad från “vanliga” metoder som inte är static?
En metod som är definierad som static tillhör klassen och inte objektet, övriga metoder har en kopia av sig själv i varje skapat objekt, medan static metoder inte har det
Vilka begränsningar har statiska metoder?
- Kan inte anropa icke-statiska metoder
- Kan inte använda icke-statiska variabler
Hur kan nyckelordet final användas?
- Klasser: för att förhindra arv
- Metoder: för att förhindra metodöverskuggning
- Variabler: för att skapa en konstant
Hur kan man förhindra arv?
Genom att definiera klassen med nyckelordet final
Hur kan man förhindra metodöverskuggning?
Genom att definiera metoden med nyckelordet final
Vad är en virtuell metod?
en metod som kan överskuggas
Behöver man definiera att en metod är virtuell?
Nej, metoder är virtuella by default i java
Hur tydliggör man att en metod är överskuggad?
Genom att skriva @Override ovanför metoden
Vad innebär överskuggning?
Överskuggning innebär att en subklass kan skriva egen implementation för en metod
Kan överskuggning ske i en subklass även om den berörda metoden har en implementation i superklassen?
Ja, sålänge metoden i superklassen inte är definierad med nyckelordet final