Razlika između klase i sučelja

Sadržaj:

Razlika između klase i sučelja
Razlika između klase i sučelja

Video: Razlika između klase i sučelja

Video: Razlika između klase i sučelja
Video: Differences between Tetrahedral & Octahedral voids || Solid state 2024, Lipanj
Anonim

Ključna razlika – klasa naspram sučelja

Objektno orijentirano programiranje (OOP) uobičajena je paradigma u razvoju softvera. Pomaže pri prenošenju scenarija iz stvarnog svijeta u programiranje pomoću klasa i objekata. Klasa je nacrt za stvaranje objekta. Programer može stvoriti klasu sa svojstvima i metodama. Učenik i učitelj su objekti. Stvaranje objekta poznato je kao instanciranje. OOP također koristi sučelja. Sučelja i klasa mogu izgledati slični, ali imaju razliku. Ovaj članak govori o razlici između klase i sučelja. Ključna razlika između klase i sučelja je u tome što je klasa referentni tip koji je nacrt za instanciranje objekta, dok je sučelje referentni tip koji se ne može koristiti za instanciranje objekta.

Što je klasa?

U OOP-u se sve smatra objektom. Nije moguće kreirati objekt bez klase. Klasa je nacrt za stvaranje objekta. Prilikom gradnje kuće, arhitekt crta plan. Plan je sličan klasi. Kuća je slična objektu. Klasa je plan izgradnje objekta. Objekt je ono što je stvoreno pomoću klase.

Klasa sadrži svojstva i metode. Student može imati svojstva kao što su ime, ocjena, broj indeksa. Učenik može imati metode kao što su čitanje, hodanje, učenje. Stvorena je klasa s potrebnim svojstvima i metodama.

Sintaksa za stvaranje klase u mnogim programskim jezicima je sljedeća. Izrađuje se pomoću ključne riječi class.

klasa class_name {

// svojstva

//metode

}

Programski jezici kao što su C i Java slijede sličnu sintaksu za stvaranje objekta pomoću klase. Pretpostavimo da je naziv razreda Student.

Student s1=novi student ();

Ovaj s1 je objekt. Ključna riječ "new" koristi se za dodjelu memorije za svojstva. Klasa također ima konstruktor za inicijalizaciju svojstava ili varijabli.

Članovi klase kao što su svojstva i metode imaju modifikatore pristupa. Specifikatori pristupa opisuju pristupačnost i vidljivost tih članova drugim klasama. Članovi klase mogu imati specifikatore pristupa kao što su javni, privatni i zaštićeni. Javni članovi dostupni su drugim klasama. Privatni članovi dostupni su samo razredu. Zaštićeni članovi dostupni su unutar klase i relevantnih podklasa.

Što je sučelje?

Apstrakcija je stup objektno orijentiranog programiranja. Svrha je sakriti detalje implementacije i prikazati funkcionalnost korisniku. Apstrakcija se postiže pomoću apstraktnih klasa i sučelja. Apstraktna metoda nema implementaciju. Klasa koja sadrži barem jednu apstraktnu metodu naziva se apstraktna klasa.

Kada postoje dvije apstraktne klase, treba implementirati metode deklarirane u tim klasama. Za implementaciju tih metoda koristi se nova klasa. Ako obje klase imaju istu metodu, to bi moglo uzrokovati problem dvosmislenosti. Stoga programski jezici kao što su Java i C imaju sučelje.

Sučelja sadrže samo deklaraciju metoda. Ne postoji način provedbe. Također, sučelja se ne mogu koristiti za stvaranje objekata. Koriste se za podršku višestrukog nasljeđivanja i za osiguranje koda.

Sintaksa sučelja je sljedeća. Sučelje koristi ključnu riječ "sučelje".

interface interface_name{

type method1(parameter_list);

tip metoda2(parameter_list);

}

Prema gore navedenom, sučelja imaju samo deklaraciju. Nema definicije. Dakle, sučelja ne mogu instancirati objekte. Daje samo apstraktan pogled na to što je sučelje. Metode deklarirane u sučelju mogu se implementirati u jednoj ili više klasa. Klasa koristi ključnu riječ "implement" za implementaciju sučelja. Pogledajte donji primjer napisan pomoću Jave.

Razlika između klase i sučelja
Razlika između klase i sučelja
Razlika između klase i sučelja
Razlika između klase i sučelja

Slika 01: Programiranje pomoću sučelja

Prema gornjem programu, A i B su sučelja. Sučelje A ima deklaraciju metode koja je sum(). Sučelje B ima deklaraciju metode sub(). Klasa C implementira oba sučelja koja su A i B. Stoga klasa C definira metode sum() i sub(). Nakon kreiranja objekta tipa C, moguće je pozvati obje metode sum() i sub().

Metode deklarirane unutar sučelja uvijek moraju biti javne jer ih implementirajuće klase definiraju. Sučelje također može naslijediti drugo sučelje.

Koje su sličnosti između klase i sučelja?

  • Obje su referentne vrste.
  • Oboje se odnosi na objektno orijentirano programiranje.

Koja je razlika između klase i sučelja?

Klasa vs sučelje

Klasa je referentni tip koji je nacrt za stvaranje objekta. Sučelje je referentni tip koji se ne može instancirati.
Instancija objekta
Klasa se koristi za instanciranje objekta. Sučelje se ne može instancirati jer metode ne mogu izvršiti nikakvu radnju.
Konstruktor
Klasa sadrži konstruktor za inicijalizaciju varijabli. Sučelje ne sadrži konstruktor jer jedva da postoje varijable za inicijalizaciju.
Ključna riječ
Razred koristi ključnu riječ "razred". Sučelje koristi ključnu riječ "sučelje".
Specifikator pristupa
Članovi klase mogu biti privatni, javni i zaštićeni. Članovi sučelja trebaju uvijek biti javni jer ih implementirajuće klase definiraju.

Sažetak – klasa vs sučelje

Klase i sučelja naširoko se koriste u objektno orijentiranom programiranju. Razlika između klase i sučelja je u tome što je klasa referentni tip koji je nacrt za instanciranje objekta, a sučelje je referentni tip koji se ne može koristiti za instanciranje objekta. Klasa može implementirati mnogo sučelja. Ali može proširiti samo jednu superklasu. In sučelje može naslijediti mnoga sučelja, ali ne može postojati implementacija. Oba imaju svoju važnost. Programer ih može koristiti prema razvoju softvera.

Preuzmite PDF Class vs Interface

Možete preuzeti PDF verziju ovog članka i koristiti ga za izvanmrežne svrhe prema napomeni o citatu. Ovdje preuzmite PDF verziju Razlika između klase i sučelja

Preporučeni: