Razlika između apstraktne klase i nasljeđivanja

Sadržaj:

Razlika između apstraktne klase i nasljeđivanja
Razlika između apstraktne klase i nasljeđivanja

Video: Razlika između apstraktne klase i nasljeđivanja

Video: Razlika između apstraktne klase i nasljeđivanja
Video: NAT Explained - Network Address Translation 2024, Novembar
Anonim

Apstraktna klasa vs nasljeđe

Apstraktna klasa i Nasljeđivanje su dva važna objektno orijentirana koncepta koja se nalaze u mnogim objektno orijentiranim programskim jezicima kao što je Java. Apstraktna klasa se može smatrati apstraktnom verzijom regularne (konkretne) klase, dok nasljeđivanje dozvoljava novim klasama da prošire druge klase. Apstraktna klasa je klasa koja se ne može inicijalizirati, ali se može proširiti. Dakle, apstraktne klase imaju smisla samo ako programski jezik podržava nasljeđivanje. U Javi, apstraktne klase se deklarišu pomoću ključne riječi Abstract, dok se ključna riječ Extends koristi za nasljeđivanje od (super) klase.

Šta je apstraktna klasa?

Tipično, apstraktne klase, poznate i kao apstraktne osnovne klase (ABC), ne mogu biti instancirane (instanca te klase se ne može kreirati). Dakle, apstraktne klase imaju smisla samo ako programski jezik podržava nasljeđivanje (sposobnost kreiranja podklasa iz proširenja klase). Apstraktne klase obično predstavljaju apstraktni koncept ili entitet sa delimičnom ili bez implementacije. Stoga se apstraktne klase ponašaju kao nadređene klase iz kojih su izvedene podređene klase tako da će podređena klasa dijeliti nepotpune karakteristike roditeljske klase i funkcionalnost se može dodati da ih dovrši.

Apstraktne klase mogu sadržavati apstraktne metode. Potklase koje proširuju apstraktnu klasu mogu implementirati ove (naslijeđene) apstraktne metode. Ako podređena klasa implementira sve takve apstraktne metode, to je konkretna klasa. Ali ako to ne učini, podređena klasa takođe postaje apstraktna klasa. Sve ovo znači da, kada programer nominuje klasu kao apstraktnu, ona kaže da će klasa biti nekompletna i da će imati elemente koje treba da dopune nasledne podklase. Ovo je lijep način za kreiranje ugovora između dva programera, što pojednostavljuje zadatke u razvoju softvera. Programer, koji piše kod za nasljeđivanje, mora tačno pratiti definicije metoda (ali naravno može imati vlastitu implementaciju).

Šta je nasljeđe?

Nasljeđivanje je objektno orijentisan koncept, koji omogućava novim klasama da prošire druge klase. Ključna riječ Extends se koristi za implementaciju koncepta nasljeđivanja u programskom jeziku Java. Nasljeđivanje u suštini pruža ponovnu upotrebu koda dozvoljavajući proširenje svojstava i ponašanja postojeće klase od strane novo definirane klase. Kada nova podklasa (ili izvedena klasa) proširuje super klasu (ili roditeljsku klasu), ta će potklasa naslijediti sve atribute i metode super klase. Potklasa može opciono nadjačati ponašanje (omogućiti novu ili proširenu funkcionalnost metodama) naslijeđeno od roditeljske klase. Tipično, podklasa ne može proširiti više super klasa (npr. u Javi). Stoga ne možete koristiti proširenja za višestruko nasljeđivanje. Da biste imali višestruko nasljeđivanje, morate koristiti interfejse.

Koja je razlika između apstraktne klase i nasljeđa?

Apstraktne klase obično predstavljaju apstraktni koncept ili entitet sa delimičnom implementacijom ili bez nje. Nasljeđivanje omogućava novim klasama da prošire druge klase. Budući da se apstraktne klase ne mogu instancirati, morate koristiti koncept nasljeđivanja da biste koristili apstraktne klase. Inače, apstraktna klasa nema koristi. Apstraktne klase mogu sadržavati apstraktne metode i kada se klasa proširi, sve metode (apstraktne i konkretne) se nasljeđuju. Naslijeđena klasa može implementirati bilo koju ili sve metode. Ako sve apstraktne metode nisu implementirane, tada i ta klasa postaje apstraktna klasa. Klasa ne može naslijediti više od jedne apstraktne klase (ovo nije kvalitet apstraktnih klasa per se, već ograničenje nasljeđivanja).

Srodni postovi:

Image
Image
Image
Image

Razlika između apstraktne klase i konkretne klase

Image
Image
Image
Image

Razlika između virtuelnog i apstraktnog

Image
Image
Image
Image

Razlika između apstraktne klase i interfejsa

Image
Image
Image
Image

Razlika između priključka i produžetka

Image
Image
Image
Image

Razlika između grafikona i stabla

Filed Under: Programiranje označeno sa: ABC, apstraktno, apstraktne osnovne klase, apstraktne klase, apstraktne klase, apstraktne ključne riječi, apstraktne metode, konkretna klasa, proširena ključna riječ, nasljeđivanje, klasa nasljeđivanja, naslijeđena klasa, Java, višestruko nasljeđivanje, objektno orijentirani koncepti, regularna klasa, super klasa

Slika
Slika

O autoru: Indika

Indika, dipl.inž., MSECE Computer Engineering, PhD. Računarske nauke, je docent i ima istraživačke interese u oblastima bioinformatike, računarske biologije i biomedicinske obrade prirodnog jezika.

Komentari

  1. Slika
    Slika

    Jason kaže

    30. avgusta 2017. u 13:25

    Hvala na objašnjenju razlike. Sva moja pitanja su riješena ovim.

    Odgovori

  2. Slika
    Slika

    Aus kaže

    10. maja 2019. u 15:04

    najbolji odgovor na webu, Učitelj ne objašnjava sranje i nema smisla, monoton mf. Ovako objašnjavate koncepte.

    Odgovori

Ostavite odgovor Otkaži odgovor

Vaša adresa e-pošte neće biti objavljena. Obavezna polja su označena

Komentar

Ime

Email

Website

Zahtjev za članak
Zahtjev za članak
Zahtjev za članak
Zahtjev za članak

Istaknute objave

Razlika između simptoma koronavirusa i prehlade
Razlika između simptoma koronavirusa i prehlade

Razlika između koronavirusa i simptoma prehlade

Razlika između koronavirusa i SARS-a
Razlika između koronavirusa i SARS-a

Razlika između Korona virusa i SARS-a

Razlika između koronavirusa i gripe
Razlika između koronavirusa i gripe

Razlika između koronavirusa i gripe

Razlika između Korona virusa i Covida 19
Razlika između Korona virusa i Covida 19

Razlika između Korona virusa i Covida 19

Možda vam se sviđa

Razlika između sibirskog haskija i malamuta

Razlika između računa AB i BC

Preporučuje se: