Abstrakčioji klasė prieš paveldėjimą
Abstrakčioji klasė ir paveldėjimas yra dvi svarbios objektinės sąvokos, aptinkamos daugelyje objektinio programavimo kalbų, pvz., Java. Abstrakti klasė gali būti laikoma abstrakčia įprastos (konkrečios) klasės versija, o paveldėjimas leidžia naujoms klasėms išplėsti kitas klases. Abstrakti klasė yra klasė, kurios negalima inicijuoti, tačiau ją galima išplėsti. Taigi, abstrakčiosios klasės yra prasmingos tik tuo atveju, jei programavimo kalba palaiko paveldėjimą. Java programoje abstrakčios klasės deklaruojamos naudojant Abstract raktinį žodį, o raktinis žodis Extends naudojamas paveldėjimui iš (super) klasės.
Kas yra abstrakčioji klasė?
Paprastai abstrakčių klasių, dar žinomų kaip abstrakčios pagrindinės klasės (ABC), negalima sukurti (negalima sukurti tos klasės egzemplioriaus). Taigi, abstrakčiosios klasės yra prasmingos tik tuo atveju, jei programavimo kalba palaiko paveldėjimą (galimybę sukurti poklasius išplečiant klasę). Abstrakčios klasės paprastai reiškia abstrakčią sąvoką arba subjektą, kuris iš dalies įgyvendinamas arba jo nėra. Todėl abstrakčios klasės veikia kaip pagrindinės klasės, iš kurių gaunamos antrinės klasės, todėl antrinė klasė dalinsis nepilnomis pagrindinės klasės ypatybėmis, o joms užbaigti galima pridėti funkcijų.
Abstrakčiose klasėse gali būti abstrakčių metodų. Poklasiai, išplečiantys abstrakčią klasę, gali įgyvendinti šiuos (paveldėtus) abstrakčiuosius metodus. Jei antrinė klasė įgyvendina visus tokius abstrakčius metodus, tai yra konkreti klasė. Bet jei ne, vaikų klasė taip pat tampa abstrakčia klase. Visa tai reiškia, kad kai programuotojas paskiria klasę kaip santrauką, ji sako, kad klasė bus neužbaigta ir joje bus elementų, kuriuos turės užpildyti paveldintys poklasiai. Tai puikus būdas sudaryti sutartį tarp dviejų programuotojų, o tai supaprastina programinės įrangos kūrimo užduotis. Programuotojas, rašantis kodą paveldėti, turi tiksliai laikytis metodo apibrėžimų (tačiau, žinoma, gali turėti savo įgyvendinimą).
Kas yra paveldėjimas?
Paveldėjimas yra į objektą orientuota koncepcija, leidžianti naujoms klasėms išplėsti kitas klases. Extends raktinis žodis naudojamas paveldėjimo koncepcijai įgyvendinti Java programavimo kalboje. Paveldėjimas iš esmės suteikia kodo pakartotinį naudojimą, leidžiant išplėsti esamos klasės savybes ir elgesį naujai apibrėžta klase. Kai naujas poklasis (arba išvestinė klasė) išplečia superklasę (arba pirminę klasę), tas poklasis paveldės visus super klasės atributus ir metodus. Poklasis gali pasirinktinai nepaisyti elgsenos (suteikti naujų arba išplėstų metodų funkcijų), paveldėtą iš pirminės klasės. Paprastai poklasis negali išplėsti kelių super klasių (pvz., Java). Todėl negalite naudoti plėtinių daugialypiam paveldėjimui. Norint turėti kelis paveldėjimus, reikia naudoti sąsajas.
Kuo skiriasi abstrakčioji klasė ir paveldėjimas?
Abstrakčios klasės paprastai reiškia abstrakčią sąvoką arba subjektą, kuris iš dalies įgyvendinamas arba jo nėra. Paveldėjimas leidžia naujoms klasėms išplėsti kitas klases. Kadangi abstrakčių klasių negalima generuoti, turite naudoti paveldėjimo sąvoką, kad galėtumėte naudoti abstrakčias klases. Priešingu atveju abstrakčioji klasė nenaudinga. Abstrakčiose klasėse gali būti abstrakčių metodų, o kai klasė išplečiama, visi metodai (abstraktūs ir konkretūs) yra paveldimi. Paveldima klasė gali įgyvendinti bet kurį arba visus metodus. Jei visi abstraktūs metodai neįdiegti, ta klasė taip pat tampa abstrakčia klase. Klasė negali paveldėti daugiau nei vienos abstrakčios klasės (tai nėra abstrakčių klasių savybė, o greičiau paveldėjimo apribojimas).
Susiję įrašai:
Skirtumas tarp abstrakčios ir konkrečios klasės
Skirtumas tarp virtualaus ir abstraktaus
Skirtumas tarp abstrakčios klasės ir sąsajos
Įgyvendinimų ir pratęsimų skirtumas
Skirtumas tarp grafiko ir medžio
Pateikta pagal: Programavimas, pažymėtas: ABC, abstraktus, abstrakčiosios pagrindinės klasės, abstrakčios klasės, abstrakčios klasės, abstraktus raktinis žodis, abstraktūs metodai, konkreti klasė, išplečiamas raktinis žodis, paveldėjimas, paveldėjimo klasė, paveldėta klasė, Java, daugkartinis paveldėjimas, objektinės sąvokos, įprasta klasė, super klasė
Apie autorių: Indika
Indika, bakalauras, MSECE kompiuterių inžinerijos mokslų daktaras. Kompiuterių mokslas, yra docentas ir turi mokslinių tyrimų interesų bioinformatikos, skaičiavimo biologijos ir biomedicininės natūralios kalbos apdorojimo srityse.
Komentarai
-
Jasonas sako
2017 m. rugpjūčio 30 d. 13.25 val.
Dėkojame, kad paaiškinote skirtumą. Tai išspręsti visi mano klausimai.
Atsakyti
-
Aus sako
2019 m. gegužės 10 d. 15.04 val.
geriausias atsakymas žiniatinklyje, Mokytojas nepaaiškina nieko ir neturi prasmės, monotoninis mf. Taip paaiškinate sąvokas.
Atsakyti
Palikti atsakymą Atšaukti atsakymą
Jūsų el. pašto adresas nebus paskelbtas. Privalomi laukai pažymėti
Komentuoti
Vardas
El. paštas
Svetainė