Ieteicams, 2024

Redaktora Izvēle

Atšķirība starp klasi un interfeisu Java

Abas klases un saskarnes tiek izmantotas, lai izveidotu jaunus atsauces veidus. Klase ir lauku un metožu kopums, kas darbojas laukos. Interfeisam ir pilnīgi abstraktas metodes, ti, metodes ar nevienu. Interfeiss ir sintaktiski līdzīgs klasei, bet pastāv būtiska atšķirība starp klasi un interfeisu, kas ir klase, ko var iztulkot, bet interfeiss nekad nevar tikt demonstrēts. Tāpēc ļaujiet mums uzzināt vairāk atšķirību starp klasi un saskarni, izmantojot zemāk redzamo salīdzinājumu tabulu.

Salīdzinājuma diagramma

Salīdzinājuma pamatsKlaseSaskarne
PamataKlase ir instantiated, lai izveidotu objektus.Interfeiss nekad nevar tikt demonstrēts, jo metodes nespēj veikt jebkādas darbības, kas saistītas ar atsauci.
Atslēgvārdsklasēsaskarne
Piekļuves specifikācijaKlases locekļi var būt privāti, publiski vai aizsargāti.Interfeisa dalībnieki vienmēr ir publiski pieejami.
MetodesKlases metodes ir noteiktas, lai veiktu konkrētu darbību.Interfeisa metodes ir tikai abstrakta.
Īstenot / paplašinātKlase var īstenot jebkuru skaitu saskarnes un var paplašināt tikai vienu klasi.Interfeiss var paplašināt vairākas saskarnes, bet nevar īstenot nevienu interfeisu.
KonstruktorsKlasei var būt konstruktori, lai inicializētu mainīgos.Interfeisam nekad nevar būt konstruktors, jo ir maz mainīgo, lai inicializētu.

Klases definīcija

Klase ir svarīgākais Java programmēšanas aspekts bez klasēm, ko nevarat īstenot Java programmā. Klase izveido atsauces veidus, un šie atsauces veidi tiek izmantoti, lai izveidotu objektus. Klasei ir paraksts un iestāde. Klases parakstam ir klases nosaukums un informācija, kas norāda, vai klase ir pārņēmusi citu klasi. Klases ķermenim ir lauki un metodes, kas darbojas šajos laukos. Klase tiek veidota, izmantojot atslēgvārdu klasi . Ļauj mums redzēt, kā pasludināt klasi.

 klases klases_nosaukums {/ * lauki ... metodes * /} 

Kad kategorija ir instantiated, katrs izveidots objekts satur ar tiem lauku un metožu kopiju. Klases lauki un locekļi, kas tiek deklarēti, var būt statiski vai netstatiski. Statiskā biedru vērtība ir nemainīga katram objektam, bet ne statiskie dalībnieki katram objektam tiek inicializēti atšķirīgi atkarībā no tā prasības.

Klases locekļiem ir piekļuves specifikācijas, kas nosaka dalībnieku redzamību un pieejamību lietotājam vai apakškategorijām. Piekļuves specifikatori ir publiski, privāti un aizsargāti. Klasi var pārmantot cita klase, izmantojot piekļuves specifikāciju, kas izlems par superklases (pārmantotās klases) dalībnieku redzamību apakšklasē (pārmantojamā klase). Tādējādi klase izpilda datu slēpšanas un iekapsulēšanas koncepciju objektorientētā programmēšanā.

Interfeisa definīcija

Interfeiss ir arī viens no Java definētajiem atsauces veidiem. Saskarnes nozīme ir tā, ka Java klasē var mantot tikai vienu klasi. Lai izvairītos no šī ierobežojuma, Java dizaineri ieviesa saskarnes koncepciju. Interfeiss ir sintaktiski līdzīgs klasei, bet tam trūkst lauka deklarācijas, un metodes interfeisa iekšienē nav īstenotas. Saskarne tiek deklarēta, izmantojot atslēgvārdu interfeisu . Apskatīsim saskarnes deklarāciju.

 saskarnes interfeisa_nosaukums {tips var_name = vērtība; tipa metode1 (parametru saraksts); tipa metode2 (parametru saraksts); . . } 

Interfeiss nenosaka nekādu metodi, kas tajā ir deklarēta, jo tajā trūkst lauku, lai darbotos. Tikai tāpēc, ka jebkura interfeisa metode neveic nekādu darbību, interfeiss nekad nevar tikt demonstrēts. Ja saskarnei ir kāds lauka dalībnieks, tas ir jāsāk inicializēt to deklarēšanas laikā. Interfeiss nekad neietver nekādus konstruktorus, jo tiem nav lauka dalībnieku, lai iegūtu inicializāciju. Tātad interfeiss definē tikai to, kas jādara klasei, nevis tam, kā tas jādara.

Kad izveidots interfeiss, var izmantot jebkuru klasi, izmantojot atslēgvārdu rīkus . Bet klases, kas ievieš saskarni, nosaka visas saskarnes iekšējās metodes. Interfeiss var arī mantot citu saskarni, izmantojot paplašinājuma atslēgvārdu. Ja klase ievieš saskarni, kas paplašina citu saskarni. Tad klasei jādefinē gan ķēdē redzamās saskarnes metodes. Interfeisa iekšienē vienmēr jābūt publiski pieejamām, jo ​​tām jābūt pieejamām klasēs, kas tos īsteno.

Galvenās atšķirības starp klasi un interfeisu Java

  1. Klase var tikt demonstrēta, veidojot tās objektus. Interfeiss nekad netiek izvērsts, jo interfeisa ietvaros deklarētās metodes ir abstraktas un neveic nekādas darbības, tāpēc nav iespējams izmantot jebkuru saskarni.
  2. Klase tiek deklarēta, izmantojot atslēgvārdu klasi. Tāpat saskarne tiek veidota, izmantojot atslēgvārdu interfeisu.
  3. Klases dalībniekiem var būt piekļuves specifikācija, piemēram, publiska, privāta, aizsargāta. Taču interfeisa dalībnieki vienmēr ir publiski pieejami, jo tiem jābūt pieejamiem ar tām klasēm, kas tos īsteno.
  4. Klases metodes tiek definētas, lai veiktu darbību klasēs, kas deklarētas klasē. Tā kā saskarnes trūkst lauka deklarācijā, metodes interfeisa iekšienē ir pilnīgi abstrakta.
  5. Klase var realizēt jebkuru skaitu saskarņu, bet var paplašināt tikai vienu super klasi. Saskarne var paplašināt jebkuru saskarņu skaitu, bet nevar ieviest nevienu interfeisu.
  6. Klasei ir konstruktori, kas tajā definēti, lai iegūtu mainīgo. Taču interfeisam nav konstruktoru, jo nav lauku, kas jāsāk inicializēt. Interfeisa lauki tiek inicializēti tikai deklarācijas laikā.

Secinājums:

Abām klasēm un saskarnēm ir sava nozīme. Klasi izmanto, kad mums ir jānosaka, kā uzdevums tiks darīts. Saskarne tiek izmantota, kad mums ir jāzina, kāds uzdevums ir jādara.

Top