Atšķirība starp klasi un interfeisu Java

Autors: Laura McKinney
Radīšanas Datums: 2 Aprīlis 2021
Atjaunināšanas Datums: 14 Maijs 2024
Anonim
Abstract Classes vs Interfaces (Java)
Video: Abstract Classes vs Interfaces (Java)

Saturs


Gan klase, gan interfeiss tiek izmantoti jaunu atsauces tipu izveidošanai. Klase ir lauku un metožu kolekcija, kas darbojas uz laukiem. Saskarnei ir pilnīgi abstraktas metodes, t.i., metodes, kurās neviens nav iesaistīts. Interfeiss ir sintaktiski līdzīgs klasei, taču pastāv liela atšķirība starp klasi un interfeisu, kas ir klase, un to var uzreiz padarīt, bet interfeisu nekad nevar padarīt par aktuālu. Tāpēc, izmantojot zemāk parādīto salīdzināšanas diagrammu, iemācīsimies vēl dažas atšķirības starp klasi un interfeisu.

  1. Salīdzināšanas tabula
  2. Definīcija
  3. Galvenās atšķirības
  4. Secinājums

Salīdzināšanas tabula

Salīdzināšanas pamatsKlaseSaskarne
PamataObjektu izveidei tiek pielietota klase.Interfeisu nekad nevar realizēt, jo metodes nespēj veikt nekādas darbības izsaukšanai.
Atslēgvārdsklasesaskarne
Piekļuves specifikatorsKlases dalībnieki var būt privāti, publiski vai aizsargāti.Saskarnes dalībnieki vienmēr ir publiski.
Metodes Klases metodes ir noteiktas, lai veiktu noteiktu darbību.Interfeisa metodes ir pilnīgi abstraktas.
Ieviest / pagarinātKlase var ieviest neierobežotu skaitu interfeisu un var paplašināt tikai vienu klasi.Saskarne var paplašināt vairākas saskarnes, bet nevar ieviest nevienu saskarni.
Konstruktors Klasei var būt konstruktori, lai inicializētu mainīgos.Interfeisam nekad nevar būt konstruktors, jo inicializēšanai gandrīz nav mainīgo.


Klases definīcija

Klase ir vissvarīgākais Java programmēšanas aspekts, ja jūs nevarat īstenot java programmu. Klase rada atsauces tipus, un šie atsauces tipi tiek izmantoti, lai izveidotu objektus. Klasei ir paraksts un korpuss. Klases parakstam ir klases nosaukums un informācija, kas norāda, vai klase ir mantojusi citu klasi. Klases korpusam ir lauki un metodes, kas darbojas šajos laukos. Klase tiek izveidota, izmantojot atslēgvārdu klase. Ļauj mums redzēt, kā pasludināt klasi.

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

Kad klase tiek instantificēta, katrs izveidotais objekts satur lauku un metožu kopijas ar tām. Klases iekšienē deklarētie lauki un locekļi var būt statiski vai nestatiski. Statisko locekļu vērtība katram objektam ir nemainīga, turpretim nestatiskos elementus katrs objekts inicializē atšķirīgi atbilstoši tā prasībām.

Klases dalībniekiem ir piekļuves specifikatori, kas izlemj dalībnieku redzamību un pieejamību lietotājam vai apakšklasēm. Piekļuves specifikatori ir publiski, privāti un aizsargāti. Klasi var mantot cita klase, izmantojot piekļuves specifikatoru, kurš izlems superklases (iedzimtas klases) dalībnieku redzamību apakšklasē (mantotā klase). Tādējādi klase pilda datu slēpšanas un iekapsulēšanas jēdzienu objektorientētā programmēšanā.


Saskarnes definīcija

Saskarne ir arī starp atsauces veidiem, kas definēti Java. Saskarnes nozīme ir tāda, ka Java valodā klase var mantot tikai vienu klasi. Lai izvairītos no šī ierobežojuma, Java dizaineri ieviesa interfeisa jēdzienu. Saskarne ir sintaktiski līdzīga klasei, taču tai trūkst lauka deklarācijas, un interfeisa iekšpusē esošajām metodēm nav nekādas ieviešanas. Saskarne tiek deklarēta, izmantojot atslēgvārdu saskarne. Apskatīsim saskarnes deklarāciju.

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

Saskarne nenosaka nevienu tajā deklarētu metodi, jo tai nav lauku, kuros darboties. Tieši tāpēc, ka jebkura saskarnes metode neveic nekādas darbības, interfeisu nekad nevar padarīt par aktuālu. Ja saskarnei ir kāds lauka loceklis, tā jāinicializē to deklarēšanas laikā. Interfeiss nekad nesatur konstruktorus, jo tam trūkst lauka dalībnieku, lai varētu inicializēt. Tātad interfeiss nosaka tikai to, kas jādara klasei, nevis kā tai jādara.

Pēc tam, kad izveidots interfeiss, var izmantot jebkuru klašu skaitu, izmantojot atslēgvārdu darbarīki. Bet klasēm, kuras ievieš saskarni, jādefinē visas saskarnes metodes. Saskarne var arī mantot citu saskarni, izmantojot pagarināt atslēgvārds. Ja klase īsteno saskarni, kas paplašina citu saskarni. Tad klasei jādefinē abu saskarņu metodes, kas parādās ķēdē. Interfeisa iekšējām metodēm vienmēr jābūt publiskām, jo ​​tām ir jābūt pieejamām klasēm, kuras tās ievieš.

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

  1. Klasi var uzreiz padarīt, izveidojot savus objektus. Interfeiss nekad netiek aktualizēts, jo interfeisa iekšpusē deklarētās metodes ir abstraktas un neveic nekādas darbības, tāpēc neviena saskarne nav jāatjaunina.
  2. Klase tiek deklarēta, izmantojot atslēgvārdu klasi. Tādā pašā veidā saskarne tiek izveidota, izmantojot atslēgvārdu saskarni.
  3. Klases dalībniekiem var būt piekļuves specifikators, piemēram, publisks, privāts, aizsargāts. Bet interfeisa dalībnieki vienmēr ir publiski pieejami, jo tiem ir jābūt pieejamiem klasēm, kas tos ievieš.
  4. Metodes klasē ir noteiktas, lai veiktu darbību klasē deklarētajos laukos. Tā kā lauku deklarācijā trūkst interfeisa, interfeisa iekšējās metodes ir pilnīgi abstraktas.
  5. Klase var ieviest neierobežotu skaitu saskarņu, bet var paplašināt tikai vienu superklases līmeni. Saskarne var paplašināt jebkuru saskarņu skaitu, bet nevar ieviest nevienu saskarni.
  6. Klases iekšpusē ir noteikti konstruktori, lai mainīgais tiktu inicializēts. Bet interfeisam nav konstruktoru, jo nav inicializējamu lauku. Saskarnes lauki tiek inicializēti tikai to deklarēšanas laikā.

Secinājums:

Gan klasēm, gan saskarnēm ir sava nozīme. Klase tiek izmantota, kad mums jādefinē, kā uzdevums tiks veikts. Saskarne tiek izmantota, kad mums jāzina, kāds uzdevums ir jāveic.