En del språk gir deg muligheten til å konstruere nye typer vha de eksisterende. Ett av disse språkene er C++. I C++ er det mange måter å konstruere delene trampsykkel, girsykkel og motorsykkel hvis du har gitt delene hjul, styre, ramme, pedaler, sete og motor.
Denne måten å se tingene på kalles objektorientert tankemåte.
En måte som krever lite tenking, er å sette sammen hver sykkel av de enkelte
komponenter:
Trampsykkel: hjul, styre, ramme, sete og pedaler.
Girsykkel : hjul, styre, ramme, sete, pedaler og gir.
Motorsykkel: hjul, styre, ramme, sete, motor og gir.
Hvis en skal konstruere mange forskjellige sykler er det lett å se at det blir mye
skriving. En løsning på dette kan være å konstruere en ny del, sykkel, og
bruke dette til å beskrive de andre sykklene:
Sykkel : hjul, styre, ramme og sete.
Trampsykkel: sykkel og pedaler.
Girsykkel : trampsykkel og gir.
Motorsykkel: sykkel, motor og gir.
Siden det ikke vil gi noen mening å lage en sykkel uten framdrift (motor eller pedaler), kunne vi ta vekk muligheten til å lage en sykkel. Dette vil si å gjøre typen sykkel abstrakt.
Men det er også en annen interessant ting som har skjedd her. Vi har fått et hierarki av sykkler.
Dette kaller vi et arvehierarki i OOP. Hierarkiet kan brukes på flere måter. Det blir mulig å referere til hvilken som helst sykkeltype med en og samme variabel . Det blir også enkelt å legge til flere detaljer. Ei sykkelkjede trenger en bare å legge til typen sykkel, så vil alle "undersykklene" arve sykkelkjedet også.
Made avaliable by
Per Gunnar Hansø
Updated: 9.8.97.