A polimorfizmus elve

Leírás: Az örökség fogalma az előző előadás során lehetővé teszi az alaposztályok módszereinek és adatainak használatát, de kétfajta örökség létezik: statikus és dinamikus öröklés (a módszerek statikus és dinamikus kötése).

Fájlméret: 41.49 KB

A munkát letöltötték: 3 fő.

Ha ez a munka nem felel meg az oldal alján, akkor hasonló munkák listája található. Használhatja a keresést is

10. előadás A POLYMORFIZMUS ELVE

10.1 A polimorfizmus fogalma

Az örökség fogalma, amelyet az előző előadás során figyelembe vettek, lehetővé teszi az alap osztályok módszereinek és adatainak használatát, de kétfajta örökség # 150; statikus és dinamikus öröklés (a módszerek statikus és dinamikus kötése).

A statikus örökség egy örökség, amelynek összes kapcsolódása a program összeállítása során keletkezik, és amelyeket valójában az osztályleírás szerkezetében definiálnak.

A dinamikus öröklés és a polimorfizmus kapcsolódó tulajdonsága azt sugallja, hogy a program végrehajtása során bizonyos kapcsolatok alakulnak ki.

A polimorfizmus az öröklött osztályok láncolatában ugyanazon módszerek megvalósításának különböző formái.

A polimorfizmus tulajdonsága speciális virtuális módszerekkel és az úgynevezett absztrakt alaposztályokkal valósul meg.

Tekintsük az absztrakt alap osztályok fogalmát.

Az osztály öröklésének előnyeihez az OOP fejlesztők elkezdték létrehozni az alapvető osztályokat, amelyek magukban foglalják az adatfeldolgozás minden lehetséges módját egy bizonyos objektumkészletből, ugyanakkor az alaposztályok általában nem tartalmazzák az adatelemeket.

Például egy alapmodell "geometriai formák" létrehozásakor felveheti a terület vagy a kötet megtalálására szolgáló módszereket. Természetesen, ha a származtatott osztály pont-osztály vagy vonalszakasz, akkor ezek az objektumok értelmetlenek ezekre az objektumokra.

Azok az alaposztályok, amelyeknél az objektumok létrehozása lehetetlen, vagy nincs értelme, kezdtek absztrakt alaposztályoknak nevezni. Az absztrakt alaposztályok csak a leszármazottaik kiszivárgását szolgálják. Rendszerint csak a módszerek halmazait állítják be, amelyeket a leszármazottaik saját maguk végzik. Az absztrakt alap osztályok hasonló módszereit nem létező célokra tervezték # 150; virtuális adattételek (azaz a jövőbeli osztályok adatelemei az öröklési láncban).

Az öröklési láncban a későbbi osztályok nem létező, virtuális adatelemeire tervezett módszereket virtuális módszernek nevezték.

A virtuális módszerek C # -re történő kijelöléséhez speciális utasításokat használnak (speciális kifejezés # 150; virtuális), ami azt jelenti, hogy a módszer virtuális. Például:

virtuális nyilvános dupla lemez ()

Ugyanakkor a program végrehajtása során a létrehozott VMT tábla egy további mutatója hozzáadódik minden létrehozott objektumhoz.

Ha a származtatott osztálynak az azonos nevű virtuális módszer saját végrehajtásával rendelkezik, akkor a módszert helyettesítési vagy átfedési módként kell deklarálni az override attribútummal. Például,

felülírja a nyilvános dupla lemez ()

A virtuális módszert nem szükséges újból definiálni az egyes származtatott osztályokban. Ha elvégzi azokat a műveleteket, amelyek kielégítik a származtatott osztályt, akkor a módszer egyszerűen öröklődik.

A helyettesítő virtuális eljárásnak ugyanazokkal a paraméterekkel kell rendelkeznie, mint az azonos nevű alapkategóriás módszer.

A polimorfizmus elve az absztrakt alaposztály virtuális módszereinek "átfedésén" alapul, módszerekkel. Ebben az esetben minden származtatott osztály saját öröklött virtuális vagy helyettesítő módszereinek egyedi megvalósítási formájával rendelkezhet.

A polimorfizmus tulajdonsága # 150; lehetőség van arra, hogy az örökséggel összekapcsolt különböző osztályok tárgyai eltérő módon reagáljanak az alaposztály ugyanazon (név szerinti) virtuális funkciójára hivatkozva.

A polimorfizmus, görögül, "sokféle formát" jelent, amely ebben az esetben egy "hívást" jelent # 151; sok módszer. "

Az alaposztályok leírásában javasoljuk, hogy a virtuális módszereket olyan módszerekként definiálják, amelyeket a származtatott osztályokban eltérő módon kell végrehajtani. Ha a módszer ugyanaz a hierarchiában, akkor jobb, ha normális módszerként definiáljuk.

10.2 Példa a statikus öröklési módszerekre

A legegyszerűbb geometriai alakok öröklött osztályainak láncolatát alapozzuk meg, egy pontot és egy kört.

Alapvetően egy olyan osztályt veszünk, amely nem rendelkezik mezőkkel, és csak egy virtuális függvényt tartalmaz a terület kiszámításához és egy "tisztán virtuális függvényhez" a nyomtatáshoz.

Példa a statikus örökségre # 150; az objektumok szokásos létrehozását, a véletlenszerű értékek 0 és 100 közé eső adatmezeteinek (a kör és a sugar középpontjának koordinátáinak) koordinátáit és ezeknek az értékeknek a nyomtatását.

A program forráskódja:

Kapcsolódó cikkek