Skirtumas tarp „Java“ klasės ir sąsajos

Autorius: Laura McKinney
Kūrybos Data: 2 Balandis 2021
Atnaujinimo Data: 14 Gegužė 2024
Anonim
Interface vs abstract class in Java C#
Video.: Interface vs abstract class in Java C#

Turinys


Klasė ir sąsaja yra naudojami kuriant naujus nuorodų tipus. Klasė yra laukų ir metodų, veikiančių laukuose, visuma. Sąsaja turi visiškai abstrakčius metodus, ty metodus su niekuo. Sąsaja sintaksiniu požiūriu yra panaši į klasę, tačiau yra didelis skirtumas tarp klasės ir sąsajos, kuri gali būti klasė, bet sąsaja niekada negali būti atnaujinta. Taigi, pasitelkime palyginimo lentelę, kuri parodyta žemiau, sužinokime daugiau apie klasės ir sąsajos skirtumus.

  1. Palyginimo diagrama
  2. Apibrėžimas
  3. Pagrindiniai skirtumai
  4. Išvada

Palyginimo diagrama

Palyginimo pagrindasKlasėSąsaja
PagrindinisKlasė akimirksniu sukuriama norint sukurti objektus.Sąsaja niekada negali būti realizuota, nes metodai negali atlikti jokių veiksmų, susijusių su iškvietimu.
Raktažodžiaiklasėsąsaja
Prieigos specifikatoriusKlasės nariai gali būti privatūs, vieši ar saugūs.Sąsajos nariai visada yra vieši.
Metodai Klasės metodai yra apibrėžti konkrečiam veiksmui atlikti.Sąsajos metodai yra visiškai abstraktūs.
Įdiegti / išplėstiKlasė gali įgyvendinti bet kokį skaičių sąsajų ir gali pratęsti tik vieną klasę.Sąsaja gali išplėsti kelias sąsajas, bet negali įgyvendinti jokios sąsajos.
Konstruktorius Klasė gali turėti konstruktorius kintamiesiems inicializuoti.Sąsaja niekada negali turėti konstruktoriaus, nes beveik nėra kintamųjų, kuriuos būtų galima inicijuoti.


Klasės apibrėžimas

Klasė yra svarbiausias „Java“ programavimo aspektas, jei klasių negalite įgyvendinti. Klasė sukuria nuorodų tipus, o šie atskaitos tipai naudojami kuriant objektus. Klasė turi parašą ir kūną. Klasės parašas turi klasės pavadinimą ir informaciją, nurodančią, ar klasė paveldėjo kitą klasę. Klasės kūne yra laukai ir metodai, kurie veikia tuose laukuose. Klasė sukuriama naudojant raktinį žodį klasė. Leidžia mums pamatyti, kaip deklaruoti klasę.

klasė klasės_vardas {/ * laukai ... metodai * /}

Kai klasė pagreitėja, kiekviename sukurtame objekte yra laukų ir metodų su jais kopija. Laukai ir nariai, deklaruojami klasės viduje, gali būti statiniai arba nestatiniai. Statinių narių vertė yra pastovi kiekvieno objekto atžvilgiu, tuo tarpu nestatinius narius kiekvienas objektas inicijuoja skirtingai, atsižvelgiant į jo reikalavimus.

Klasės nariai turi prieigos specifikacijas, kurios nustato narių matomumą ir prieinamumą vartotojui ar poklasiams. Prieigos specifikacijos yra viešos, privačios ir apsaugotos. Klasę gali paveldėti kita klasė, naudodama prieigos specifikatorių, kuris lems superklasės (paveldėtos klasės) narių matomumą poklasyje (paveldėjimo klasė). Taigi klasė įvykdo duomenų slėpimo ir įterpimo į objektinį programavimą sąvoką.


Sąsajos apibrėžimas

Sąsaja taip pat yra tarp „Java“ apibrėžtų atskaitos tipų. Sąsajos svarba yra ta, kad „Java“ klasėje klasė gali paveldėti tik vieną klasę. Norėdami išvengti šio apribojimo, „Java“ dizaineriai pristatė sąsajos sąvoką. Sąsaja sintaksiniu požiūriu yra panaši į klasę, tačiau joje trūksta lauko deklaravimo, o metodai sąsajos viduje nėra įgyvendinami. Sąsaja deklaruojama naudojant raktinį žodį sąsaja. Peržiūrėkime sąsajos deklaraciją.

sąsajos sąsajos_vardas {tipas var_name = reikšmė; tipo metodas1 (parametrų sąrašas); tipo metodas2 (parametrų sąrašas); . . }

Sąsaja neapibrėžia jokio joje deklaruojamo metodo, nes trūksta laukų, kuriuose būtų galima veikti. Kadangi bet koks sąsajos metodas neatlieka jokių veiksmų, sąsaja niekada negali būti įgyvendinta. Jei sąsaja turi bet kurį lauko narį, ji turi būti inicijuota jų deklaravimo metu. Sąsajoje niekada nėra konstruktorių, nes trūksta lauko narių, kad jie galėtų pradėti. Taigi, sąsaja nustato tik tai, ką turi padaryti klasė, o ne tai, ką ji turi daryti.

Sukurtą sąsają galima įgyvendinti bet kokiu klasių skaičiumi, naudojant raktinį žodį padargai. Bet klasės, įgyvendinančios sąsają, turi apibrėžti visus sąsajos metodus. Sąsaja taip pat gali paveldėti kitą sąsają naudodama pratęsti raktinis žodis. Jei klasė įgyvendina sąsają, praplečiančią kitą sąsają. Tada klasė turi apibrėžti abiejų grandinėje esančių sąsajų metodus. Sąsajos viduje esantys metodai visada turi būti vieši, nes juos turi prieiti juos įgyvendinančios klasės.

Pagrindiniai „Java“ klasės ir sąsajos skirtumai

  1. Klasę galima akimirksniu sukurti kuriant savo objektus. Sąsaja niekada neinicijuojama, nes sąsajos viduje deklaruojami metodai yra abstraktūs ir neatlieka jokių veiksmų, todėl nereikia naudoti jokios sąsajos atnaujinimo.
  2. Klasė deklaruojama naudojant raktinių žodžių klasę. Tokiu pat būdu sąsaja sukuriama naudojant raktinių žodžių sąsają.
  3. Klasės nariai gali turėti prieigos specifikacijas, tokias kaip vieša, privati, apsaugota. Bet sąsajos nariai visada yra vieši, nes juos turi pasiekti klasės, įgyvendinančios juos.
  4. Metodai klasės viduje yra apibrėžti veiksmui atlikti lauke, kuris deklaruojamas klasėje. Kadangi sąsajos trūksta laukų deklaracijoje, metodai sąsajos viduje yra visiškai abstraktūs.
  5. Klasė gali įgyvendinti bet kokį sąsajų skaičių, tačiau gali pratęsti tik vieną superklasę. Sąsaja gali išplėsti bet kokį sąsajų skaičių, tačiau negali įdiegti jokios sąsajos.
  6. Klasėje yra konstruktorių, apibrėžtų viduje, kad kintamasis būtų inicializuotas. Bet sąsaja neturi konstruktorių, nes nėra laukų, kuriuos reikia inicijuoti. Sąsajos laukai yra inicijuojami tik jų deklaravimo metu.

Išvada:

Ir klasės, ir sąsajos turi savo svarbą. Klasė naudojama tada, kai turime apibrėžti, kaip užduotis bus atlikta. Sąsaja naudojama tada, kai turime žinoti, kokią užduotį reikia atlikti.