70 likes | 200 Views
Muutamia käsitteitä. Perintä (inheritance) on luokkien välinen suhde, jossa johdettu luokka (subclass, derived class) perii kantaluokan, perusluokan (superclass, base class) rakenteen ja käyttäytymisen.
E N D
Muutamia käsitteitä • Perintä (inheritance) on luokkien välinen suhde, jossa johdettu luokka (subclass, derived class) perii kantaluokan, perusluokan (superclass, base class) rakenteen ja käyttäytymisen. • Sitä nimitetään myös yleistys-/erikoistussuhteeksi (generalization/specialization relationship), sillä kantaluokka on johdetun luokan yleistys, ja toisinpäin, johdettu luokka erikoistaa kantaluokkaa. • Johdettu luokka perii kantaluokan kaikki tietojäsenet ja jäsenfunktiot. tMyn
Johdettu luokka voi erikoistua lisäämällä uusia tietojäseniä tai jäsenfunktioita ja/tai korvaamalla (redefined functions) kantaluokan jäsenfunktioiden toteutuksia. • Termi redefinition, korvaaminen liittyy nimenomaan perintään. • Perintä on yksiperintää (single inheritance) tai moniperintää (multiple inheritance) sen mukaan periikö johdettu luokka yhdestä vai useammasta kantaluokasta, kuva 1. • Tätä kirjoitellessa PHP ei tue moniperintää – tämä ei taida monenkaan vauhtia hidastaa! tMyn
Vene Auto Hevosajoneuvo Amfibi Vankkurit Kiesit Kuva 1. Yksiperintä ja moniperintä. tMyn
Redefining an Inherited Function: A derived class inherits all the member functions (and member variables as well) that belong to the base class. However, if a derived class requires a different implementation for an inherited member function, the function may be redifened in the derived class. tMyn
Redefining an Inherited Function: When a member function is redefined, you must list its declaration and definition in the definition of the derived class even though the declaration is the same as in the base class. If you do not wish to redefine a member function that is inherited from the base class, then it is not listed in the definition of the derived class. tMyn
Johdettu luokka on kantaluokasta johdettu uusi luokka. • Perintä mahdollistaa siis luokkien välisen periytymisen. • Oliot eivät voi periä toisiaan. • Kantaluokka sisältää ne tietojäsenet ja jäsenfunktiot, jotka ovat samoja kaikille luokkahierarkian olioille. tMyn
Johdettu luokka sisältää vain ne tietojäsenet ja jäsenfunktiot, jotka ovat lisäksi tarpeellisia vain johdetun luokan olioille. • Johdettuun luokkaan ei siis esitellä uudelleen kantaluokassa jo esiteltyjä tietojäseniä tai jäsenfunktioita, vaan tarkoituksena on käyttää hyödyksi kantaluokan jäseniä sellaisenaan. tMyn