Tartalom
A program írásakor a modern fejlesztőnek először át kell gondolnia a jövőbeli projekt architektúráját. A szoftverfejlesztés objektum-orientált megközelítésének szempontjából ez azt jelenti, hogy a programozónak olyan kódot kell létrehoznia, amely logikai blokkokból (osztályokból és objektumokból) áll, és átgondolja az interakciójukat. A kódot támogatni kell. Ez azt jelenti, hogy a jövőben ez a program fájdalommentesen kiegészíthető vagy bővíthető anélkül, hogy megváltoztatná fő összetevőit.

Az objektum-orientált fejlesztési paradigmában három fő eszköz létezik, amelyeket a fejlesztők jó kód írására használnak:
- Kapszulázás.
- Öröklés.
- Polimorfizmus.
- Öröklés.
Öröklés
Ez egy új osztály létrehozásának folyamata egy meglévő alapján. Az objektumorientált megközelítést elsősorban a valós világ fogalmainak és jelenségeinek programozási nyelven történő leírására használják. Ezért az OOP megértése érdekében meg kell tanulni, hogyan kell leírni a programozó előtt álló feladatot, az osztályok nyelvét és az objektumokat.

Az öröklési folyamat lényegének megértése érdekében példát adhat az életből. Van egy elvont fogalom az "ember". . Bármely személynek közös jellemzői vannak, amelyek leírhatják őt. Ezek magasság, súly, hajszín, hangszín stb. Ivanov Ivan, az 1. osztály " a " hallgatója az "ember" fogalmának sajátos képviselője, vagyis az objektumorientált megközelítés nyelvén Ivanov Ivan fogalma az ember fogalmának örököse. Vagy például a szomszéd macskája, Barsik a "macska"fogalmának örököse. Összetettebb örökséget hozhat létre: a Borz fogalmát a maine coon fogalmából örököljük, amely viszont a "macska"fogalmából származik.
Hogyan írja le a programozási nyelv?
A szoftverfejlesztés , az öröklési folyamat lehetővé teszi egy osztály létrehozását mások alapján. A szülőosztályt alaposztálynak nevezzük, a többi örökös pedig származékos. A hitelfelvétel abban rejlik, hogy a szülők módszereit, tulajdonságait, területeit átadják az utódoknak. Öröklési szintaxis osztályok a nyelvben A C # programozás így néz ki. Például:
osztály Ivan: személy {//osztály test{
Példa az osztály öröklési mechanizmusára:
osztály személy{public Int Age { get; set;}} osztály Ivan: személy{public void Talk () {//Ivan talks}} osztály Peter: személy{public void Walk () {//Peter walks}} osztály Program{statikus void Main (string [] args) {Ivan ivan = új Ivan (); ivan.Kor = 29; / / jelölje Péter Péter korát = új Péter (); Péter.Életkor = 35ivan.Beszélgetés (); Péter.Séta () ();}}
Az öröklődő osztályok a személy alaposztály alapján jönnek létre, az Age tulajdonság pedig mindkét osztály számára elérhető.
Base Class Kivitelező
Egy deklarált konstruktorral és egy inheritor osztállyal rendelkező osztály létrehozásakor logikus kérdés merül fel: mely konstruktorok lesznek felelősek az ilyen osztályok objektumainak létrehozásakor?
Ha csak az öröklött osztályban van beállítva, akkor az örökölt objektum létrehozásakor az alapértelmezett konstruktort (szülőt) hívják meg, majd a Vevőt.
Ha a konstruktorok mind a szülő, mind a gyermek osztályban vannak beállítva, akkor az alap kulcsszót használják az alap meghívására. Egy ilyen öröklési struktúra deklarálásakor a következő szintaxist használjuk a konstruktor beállításához:
nyilvános Ivan (int kor): alap (kor) {//konstruktor test}
Az osztálymódszerek öröklése az OOP legfontosabb tulajdonsága. Az utód osztály objektumának létrehozásakor az alaposztály konstruktorának argumentumai átkerülnek hozzá, majd meghívják a konstruktorát, majd végrehajtják az utód konstruktor fennmaradó hívásait.
Mezők elérése gyermekosztályból
Az alaposztály tulajdonságaihoz és metódusaihoz való hozzáférés öröklése az utódosztályból akkor válik lehetővé, ha mindegyik a következő kulcsszavakkal van deklarálva:
1. Nyilvános.
Korlátlan hozzáférést biztosít az osztály tagjaihoz: fő, leszármazott osztályokból, más analógokból.
2. Védett.
A taghoz való hozzáférés csak a forrásosztályból vagy származtatott analógokból marad.
3. Belső.
A tagra vonatkozó korlátozást csak a projekt ezen összeállítása lokalizálja.
4. Védett belső.
A tagra vonatkozó korlátozást csak a projekt ezen összeállítása vagy származtatott osztályok korlátozzák.

Az osztálytagokhoz való hozzáférés öröklődése a kulcsszavaktól függ. Ha egy tag nincs megadva, mint olyan, amikor deklarál, akkor a hozzáférhetőség alapértelmezés szerint be van állítva (privát).
Többszörös öröklés
Az interfészek olyan szerződés, amely garantálja, hogy egy metóduskészlet megvalósul az interfészt öröklő osztályban. Ez utóbbiak nem tartalmaznak statikus tagokat, mezőket, állandókat vagy konstruktorokat. Illogikus és lehetetlen interfészobjektumokat létrehozni.

Ezeket a struktúrákat az osztályokon kívül hozzák létre, a kulcsszó felületével deklarálva:
interfész IMyInterfave{void MyMethod (int someVar);}
Az interfészek létrehozásakor a jó forma szabálya az, hogy a szerkezet nevét nagybetűvel kezdjük, hogy a jövőben könnyen megkülönböztethetők legyenek. A tagok aláírásait az interfész törzsében deklarálják.
Annak jelzésére, hogy az osztály megvalósítja az interfészt, meg kell adni a konstrukció nevét az osztály deklarációja után ugyanúgy, mint a normál öröklésnél:
osztály MyClass: IMyInterface{nyilvános void myMethod (int someVar)}
Interfészek szükség van a sorrendben, többszörös öröklés megvalósítása. a programozási nyelv C++, az osztályok megelőző öröklése lehetséges, a C# - ban interfészeket használnak ezekre a célokra. Egy osztály nagyszámú interfészt valósíthat meg, ebben az esetben vesszővel elválasztva vannak felsorolva az osztály deklarációja után:
MyClass osztály: IMyFirstInterface, IMySecondInterface {//osztálytest}
Alapértelmezés szerint az interfészek összes tulajdonsága és módszere nyilvános hozzáféréssel rendelkezik, mert meg kell határozzon meg néhány olyan funkciót, amelyet a jövőben az osztályban hajtanak végre. Az öröklés A C# - ban szinte mindig magában foglalja ezt a praktikus eszközt.

Egy kicsit többet az osztály örökléséről
Java, C#, C++ - minden objektumorientált nyelv a maga módján valósítja meg az öröklési mechanizmust. De a lényeg mindenütt ugyanaz: a szülő tulajdonságainak átvitele a leszármazott objektumra. Az interfészek, az absztrakt osztályok mind kényelmes eszközök a feladat végrehajtásához.