torsdag 1. november 2007

Torsdag 1/11: Arv og polymorfi

Eksemplet med "Animals" viser at "Inherits" angir arv, og at det arvede er implisitt (kan dras nytte av uten videre). Hvis "MustInherit" er angitt (som i "Shape") er klassen abstrakt og kan ikke lages objekt av. En funksjon som er "Overrides" angir polymorfi, at en arvet funksjon skal overstyres (slik at anden sier "gakk" og musen "pip", selv om begge jo er arvinger av "Animals"). En funksjon angitt som "MustOverride", har ingen innmat, den forsynes derimot av arvingene, f.eks. at "Circle" har den egentlige area(). Hensikten? Forenkle vedlikeholdet av programvaren (utvidelser, endringer, krymping).