Zusammenfassung der Ressource
Typomvandling
- Explicit
- Från superklass till subklass
- En blomma är ju inte alltid en hyacint
- Fungerar inte alltid
- I så fall kastas ett exception
- Flower flower = new Hyacint();
Tulip tulip = (Tulip)flower
- Misslyckas då flower inte är en Tulip utan en Hyacint och
det finns inget arv mellan Tulip och Hyacint
- Kan även använda operatorn as som tillåter oss att
göra en explicit typomvandling som inte kastar
exception utan bara returnerar värdet null ifall
omvandlingen misslyckas
- Flower flower = new Hyacinth();
Tulip tulip = flower as Tulip
- if (tulip != null)
- Implicit
- Från subklass till superklass
- Enligt Liskovs substitionsprincip så kan ju subklassen allt som superklassen kan.
- Lyckas ALLTID! Som att en int alltid kan bli en long.