Opdracht 2(**): ANTWOORDEN Casting

Plaats reactie
admin
Site Admin
Berichten: 39
Lid geworden op: 01-02-2017 08:45

Opdracht 2(**): ANTWOORDEN Casting

Bericht door admin » 06-03-2017 11:37

a) GreenFlea flea = new GreenFlea() -> correct, want het deel rechts van het =-teken levert een objectreferentie naar een object van de klasse GreenFlea op.
b) Flea flea = new GreenFlea()-> correct, want het deel rechts van het =-teken levert een objectreferentie naar een object van de klasse GreenFlea op. En een GreenFlea is ook een Flea, want GreenFlea is een subklasse van Flea.
c) GreenFlea flea = new Flea() -> -> fout, want het deel rechts van het =-teken levert een objectreferentie naar een object van de klasse Flea op en dat is geen GreenFlea.
d) GreenFlea flea = new RedFlea() -> -> fout, want het deel rechts van het =-teken levert een objectreferentie naar een object van de klasse RedFlea op en dat is geen GreenFlea
e) GreenFlea flea = (GreenFlea) getOneIntersectingObject (GreenFlea.class) -> correct, want het deel rechts van het =-teken levert een objectreferentie naar een object van de klasse GreenFlea op vanwege de casting. De casting mag, want de methode getOneIntersectingObject zal vanwege de parameter GreenFlea.class een referentie opleveren naar een object van de klasse GreenFlea.
f) GreenFlea flea = (GreenFlea) getWorld() -> fout, want getWorld levert een referentie naar een object van de klasse World op en dat is geen GreenFlea.
g) Actor Flea = (GreenFlea) getOneIntersectingObject (GreenFlea.class) -> correct, want het deel rechts van het =-teken levert een objectreferentie naar een object van de klasse GreenFlea op. En een GreenFlea is een Actor, want GreenFlea is een subklasse van Actor.
h) Actor Flea = getOneIntersectingObject (GreenFlea.class) -> correct, want het deel rechts van het =-teken levert een objectreferentie naar een object van de klasse Actor op.
i) GreenFlea Flea = (GreenFlea) getOneIntersectingObject (Actor.class) -> dit gaat goed als er alleen maar objecten zijn van de klasse GreenFlea. Als er ook andere objecten zijn de klasse Actor of een subklasse daarvan, kan de casting misgaan.

Plaats reactie