OOP, objekty, triedy. Dedičstvo a rozhrania

Začnite písať program, moderný developer by mal najprv zvážiť architektúru budúceho projektu. Z hľadiska objektovo orientovaného prístupu k vývoju softvéru, čo znamená, že programátor musí vytvoriť kód, ktorý sa bude skladať z logických blokov (Triedy a objekty) a posúdiť ich interakcie. Kód musí byť podporovaný. To znamená, že v budúcnosti môže byť tento program bezbolestný, aby sa doplnil alebo rozšíril bez zmeny jeho hlavných komponentov.

Vo objektovo orientovaného paradigmy vývoja, existujú tri hlavné nástroje vývojári používané napísať dobrý kód:
  • zapuzdrenie.
  • dedičstvo.
  • Polymorfizmus.
  • dedičstvo.
  • Dedičnosť

    Toto je proces vytvárania novej triedy založenej na existujúcej triede. Objektovo orientovaný prístup sa primárne používa na opis konceptov a javov reálneho sveta v programovacom jazyku. Preto, aby ste pochopili OOP, musíte sa naučiť opísať úlohu, ktorej čelí programátor, jazyk tried a objektov.


    Aby sme pochopili podstatu procesu dedičnosti, môžeme dať príklad života. Existuje abstraktný pojem "človek". Každá osoba má všeobecné charakteristiky, ktoré možno opísať. Je to výška, hmotnosť, farba vlasov, stopa hlasu atď. Ivan Ivanov, študent 1. trieda "A" - je predstaviteľom určitého pojmu "človeka", to znamená, že jazyk objektovo orientovaného prístupu, koncept ivan Ivanov -dediča pojmu človek. Alebo napríklad susedná mačka Barsik - dedič pojmu "mačka". Dá sa vytvoriť zložitejšie dedičstvo: koncept Barsíka zdedil pojem maine-kun, ktorý je zase dedený z pojmu "mačka".


    Ako je to opísané v programovacom jazyku?

    Pri vývoji softvéru umožňuje proces dedičnosti vytvoriť triedu založenú na iných. Rodičovská trieda sa nazýva základňou a zvyšní dedičia sú deriváty. Pôžička spočíva v tom, že potomkovia prechádzajú metódy, vlastnosti a polia rodičov. Syntax dedičnosti triedy v programovacom jazyku C # môže vyzerať takto. Napríklad:

    trieda Ivan: Osoba
    {
    //telo triedy
    {

    Príklad mechanizmu dedičnosti tried: trieda Osoba
    {
    public int Age {get;
    }
    trieda Ivan: Osoba
    {
    public void Talk ()
    {
    : ()
    {
    {
    {{39} {{41} [] args)
    {
    Ivan ivan = nový Ivan ();
    ivan.Age = 29; //označiť vek
    Peter peter = nový Peter ();
    peter.Age = 35
    ivan.Talk ();
    peter.Walk () ();
    }
    }

    Na základe základnej triedy Osoba sa vytvárajú dedičia a majetok Vek je dostupný pre obe triedy.

    Vytvorenie triedy s deklarovaným konštruktérom a triednym dedičom, existuje logická otázka: Ktorí dizajnéri budú zodpovední za vytváranie objektov týchto tried?

    Ak je daná len v zdedenej triede, konštruktér je pri vytváraní objektu dediča implicitne nazývaný.(rodič) a potom jeho prijímač.

    Ak sú konštruktory uvedené ako v materskej, tak aj v dcérskej triede, základné kľúčové slovo sa používa na zavolanie základného kľúča. Pri deklarovaní štruktúry dedičnej štruktúry sa používa nasledujúca syntax:


    Inheritance prístupu k vlastnosti a metódy základnej triedy triedneho-nástupcu stáva možným, keď oznámili nasledujúce slová:

    1. Public.

    Poskytuje neobmedzený prístup k členom triedy: Hlavné, z po sebe nasledujúcich tried, od iných protějškov.

    2. Chránené.

    Prístup k členovi zostáva iba z počiatočnej triedy alebo odvodený z analógov.

    3. Vnútorná.

    Obmedzenie na člena je lokalizované iba v tomto projekte.

    4. Chránené interné.

    Obmedzenie na člena je obmedzené len týmto dodatkomprojekt alebo odvodené triedy.

    Dedičstvo prístupu k členom triedy závisí od kľúčových slov. Ak člen nie je ako taký špecifikovaný, dostupnosť je nastavená na súkromné ​​(súkromné).

    Viacnásobná dedičnosť

    rozhrania - zmluva, ktorá poskytuje záruku, že súbor metód bude vykonaný v triede nástupcu rozhrania. Tieto neobsahujú statické prvky, polia, konštanty alebo konštruktory. Je nelogické a nemôžete vytvoriť objekty rozhrania.


    Trochu o dedičnosti tried
    Java, C #, C ++ - všetky objektovo orientované jazyky svojim spôsobom implementujú mechanizmus dedičnosti. Ale podstatou je všade: preniesť vlastnosti nadradeného objektu-potomka. Rozhrania, abstraktné triedy sú všetko vhodné nástroje pre túto úlohu.

    Súvisiace publikácie