Ključna razlika – klasa naspram interfejsa
Objektno orijentirano programiranje (OOP) je uobičajena paradigma u razvoju softvera. Pomaže u donošenju scenarija iz stvarnog svijeta u programiranje korištenjem klasa i objekata. Klasa je nacrt za kreiranje objekta. Programer može kreirati klasu sa svojstvima i metodama. Učenik i nastavnik su objekti. Kreiranje objekta poznato je kao instancija. OOP takođe koristi interfejse. Interfejsi i klasa mogu izgledati slični, ali imaju razliku. Ovaj članak govori o razlici između klase i interfejsa. Ključna razlika između klase i interfejsa je u tome što je klasa referentni tip koji je nacrt za instanciranje objekta dok je interfejs referentni tip koji se ne može koristiti za instanciranje objekta.
Šta je klasa?
U OOP-u, sve se smatra objektom. Nije moguće kreirati objekat bez klase. Klasa je nacrt za kreiranje objekta. Prilikom gradnje kuće, arhitekta crta plan. Plan je sličan razredu. Kuća je slična objektu. Klasa je plan za izgradnju objekta. Objekt je ono što je kreirano korištenjem klase.
Klasa sadrži svojstva i metode. Učenik može imati svojstva kao što su ime, ocjena, broj indeksa. Učenik može imati metode kao što su čitanje, hodanje, učenje. Klasa je kreirana sa potrebnim svojstvima i metodama.
Sintaksa za kreiranje klase u mnogim programskim jezicima je sljedeća. Kreira se pomoću ključne riječi class.
class class_name {
// svojstva
//metode
}
Programski jezici kao što su C i Java prate sličnu sintaksu za kreiranje objekta koristeći klasu. Pretpostavimo da je naziv klase Student.
Student s1=novi student ();
Ovaj s1 je objekt. Ključna riječ “new” se koristi za dodjelu memorije za svojstva. Klasa takođe 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 specifikacije pristupa kao što su javni, privatni i zaštićeni. Javnim članovima pristupaju druge klase. Privatni članovi su dostupni samo razredu. Zaštićeni članovi su dostupni unutar klase i relevantnih podklasa.
Šta je interfejs?
Apstrakcija je stub objektno orijentisanog programiranja. To je da se sakriju detalji implementacije i da se prikaže funkcionalnost korisniku. Apstrakcija se postiže korišćenjem apstraktnih klasa i interfejsa. Apstraktna metoda nema implementaciju. Klasa koja sadrži najmanje jednu apstraktnu metodu naziva se apstraktnom klasom.
Kada postoje dvije apstraktne klase, treba implementirati metode deklarirane u tim klasama. Za implementaciju ovih metoda koristi se nova klasa. Ako bi obje klase imale isti metod, to bi moglo uzrokovati problem dvosmislenosti. Stoga programski jezici kao što su Java i C imaju interfejs.
Interfejsi sadrže samo deklaraciju metoda. Ne postoji način implementacije. Takođe, interfejsi se ne mogu koristiti za kreiranje objekata. Koriste se za podršku višestrukog nasljeđivanja i za osiguranje koda.
Sintaksa interfejsa je sledeća. Interfejs koristite ključnu riječ “interfejs”.
interface interface_name{
type method1(parameter_list);
type method2(parameter_list);
}
Prema gore navedenom, interfejsi imaju samo deklaraciju. Ne postoji definicija. Dakle, interfejsi ne mogu instancirati objekte. Daje samo apstraktan pogled na to šta je interfejs. Metode deklarirane u interfejsu mogu biti implementirane od strane jedne ili više klasa. Klasa koristi ključnu riječ “implement” za implementaciju interfejsa. Pogledajte donji primjer napisan korištenjem Jave.
Slika 01: Programiranje koristeći interfejse
Prema gore navedenom programu, A i B su interfejsi. Interfejs A ima deklaraciju metode koja je sum(). Interfejs B ima deklaraciju metode sub(). Klasa C implementira oba interfejsa koja su A i B. Stoga, klasa C definiše i sum() i sub() metode. Nakon kreiranja objekta tipa C, moguće je pozvati obje metode sum() i sub().
Metode deklarirane unutar interfejsa moraju uvijek biti javne jer ih definiraju implementacione klase. Interfejs se također može naslijediti od drugog interfejsa.
Koje su sličnosti između klase i interfejsa?
- Obje su referentne vrste.
- Oba se odnose na objektno orijentirano programiranje.
Koja je razlika između klase i interfejsa?
Class vs Interface |
|
A klasa je referentni tip koji je nacrt za kreiranje objekta. | Sučelje je referentni tip koji se ne može instancirati. |
Instantacija objekta | |
A klasa se koristi za instanciranje objekta. | Sučelje se ne može instancirati jer metode ne mogu izvršiti nikakvu radnju. |
Constructor | |
Klasa sadrži konstruktor za inicijalizaciju varijabli. | Sučelje ne sadrži konstruktor jer jedva da su varijable za inicijalizaciju. |
Ključna riječ | |
A klasa koristi ključnu riječ “class”. | Sučelje koristi ključnu riječ “interfejs”. |
Specifikator pristupa | |
Članovi klase mogu biti privatni, javni i zaštićeni. | Članovi interfejsa trebaju uvijek biti javni jer ih implementirajuće klase definiraju. |
Sažetak – klasa vs interfejs
Klase i interfejsi se široko koriste u objektno orijentisanom programiranju. Razlika između klase i interfejsa je u tome što je klasa referentni tip koji je nacrt za instanciranje objekta, a interfejs je referentni tip koji se ne može koristiti za instanciranje objekta. Klasa može implementirati mnogo interfejsa. Ali može proširiti samo jednu superklasu. Interfejs može naslijediti mnogo interfejsa, ali ne može postojati implementacija. I jedno i drugo ima svoju važnost. Programer ih može koristiti u skladu sa razvojnim softverom.
Preuzmite PDF Class vs Interface
Možete preuzeti PDF verziju ovog članka i koristiti ga za vanmrežne svrhe prema napomeni o citatu. Molimo preuzmite PDF verziju ovdje Razlika između klase i interfejsa