„Java“ sąsaja ir santrauka: koks skirtumas?

Turinys:

Anonim

Kas yra sąsaja?

Sąsaja yra projektas, kurį galima naudoti kurso įgyvendinimui. Sąsajoje nėra jokių konkrečių metodų (metodų, turinčių kodą). Visi sąsajos metodai yra abstraktūs metodai.

Sąsajos negalima sukurti. Tačiau klases, diegiančias sąsajas, galima sukurti. Sąsajose niekada nėra egzempliorių kintamųjų, tačiau juose gali būti viešų statinių galutinių kintamųjų (ty pastovių klasės kintamųjų)

Kas yra abstrakti klasė?

Klasė, kurios deklaracijoje yra abstraktus raktinis žodis, vadinama abstrakčiąja klase. Anotacijos klasėse turėtų būti bent vienas abstraktus metodas. , ty metodai be kūno. Tai gali būti keli konkretūs metodai.

Abstraktūs užsiėmimai leidžia jums sukurti betoninių klasių brėžinius. Tačiau paveldima klasė turėtų įgyvendinti abstraktų metodą.

Abstrakčių klasių negalima sukurti.

Svarbios sąsajų naudojimo priežastys

  • Sąsajos naudojamos abstrakcijai pasiekti.
  • Sukurta palaikyti dinaminio metodo skiriamąją gebą vykdymo metu
  • Tai padeda jums laisvai sukabinti.
  • Leidžia atskirti metodo apibrėžimą nuo paveldėjimo hierarchijos

Svarbios abstrakčios klasės naudojimo priežastys

  • Abstraktios klasės siūlo numatytuosius poklasių funkcionalumus.
  • Pateikia būsimų konkrečių klasių šabloną
  • Padeda apibrėžti bendrą jos poklasių sąsają
  • Santrauka klasė leidžia pakartotinai naudoti kodą.

Sąsaja vs. Anotacija

Abstrakti klasė leidžia jums sukurti funkciją, kurią poklasiai gali įgyvendinti ar nepaisyti, o sąsaja leidžia tik nurodyti funkcionalumą, bet ne įgyvendinti. Klasė gali išplėsti tik vieną abstrakčią klasę, o klasė gali įdiegti kelias sąsajas.

Parametrai Sąsaja Abstraktus užsiėmimas
Greitis Lėtas Greitai
Keli paveldėjimai Įdiegti keletą sąsajų Tik viena abstrakti klasė
Struktūra Abstraktūs metodai Abstraktūs ir konkretūs metodai
Kada naudoti Ateities patobulinimas Kad būtų išvengta nepriklausomybės
Paveldėjimas / įgyvendinimas Klasė gali įdiegti kelias sąsajas Klasė gali paveldėti tik vieną abstrakčią klasę
Numatytasis įgyvendinimas Į sąsają įtraukiant naujų dalykų, košmaras yra surasti visus įgyvendintojus ir įdiegti naujai apibrėžtus dalykus. Abstrakčios klasės atveju galite pasinaudoti numatytuoju diegimo pranašumais.
Prieigos modifikatoriai Sąsajoje nėra prieigos modifikatorių. Laikoma, kad viskas, kas apibrėžta sąsajoje, yra viešasis modifikatorius. „Abstract Class“ gali turėti prieigos modifikatorių.
Kada naudoti Geriau naudoti sąsają, kai įvairios realizacijos dalijasi tik metodo parašu. Vertybių tipų polimorfinė hierarchija. Jis turėtų būti naudojamas, kai įvairūs to paties tipo įgyvendinimai yra bendri.
Duomenų laukai sąsajoje negali būti duomenų laukų. klasėje gali būti duomenų laukai.
Numatytasis kelių paveldėjimo būdų nustatymas Klasė gali įdiegti daugybę sąsajų. Klasė paveldi tik vieną abstrakčią klasę.
Įgyvendinimas Sąsaja yra abstrakti, todėl negali pateikti jokio kodo. Abstrakti klasė gali suteikti visą numatytąjį kodą, kuris turėtų būti pakeistas.
„Access“ modifikatorių naudojimas Negalite naudoti prieigos modifikatorių metodui, ypatybėms ir kt. Galite naudoti abstrakčią klasę, kurioje yra prieigos modifikatoriai.
Naudojimas Sąsajos padeda apibrėžti periferinius klasės sugebėjimus. Abstrakti klasė apibrėžia klasės tapatybę.
Apibrėžti laukai Negalima apibrėžti jokių laukų Abstrakti klasė leidžia apibrėžti laukus ir konstantas
Paveldėjimas Sąsaja gali paveldėti kelias sąsajas, bet negali paveldėti klasės. Abstrakti klasė gali paveldėti klasę ir kelias sąsajas.
Konstruktorius arba destruktoriai Sąsaja negali deklaruoti konstruktorių ar destruktorių. Abstrakti klasė gali paskelbti konstruktorius ir destruktorius.
Pratęsimų riba Tai gali išplėsti bet kokį sąsajų skaičių. Vienu metu jis gali pratęsti tik vieną klasę arba vieną abstrakčią klasę.
Santrauka raktinis žodis Abstrakčios sąsajos raktinis žodis yra neprivalomas deklaruojant metodą kaip abstraktų. Abstrakčioje klasėje abstraktus raktinis žodis yra privalomas norint deklaruoti metodą kaip abstraktų.
Klasės tipas Sąsaja gali turėti tik viešus abstrakčius metodus. Abstrakti klasė turi saugomus ir viešus abstrakčius metodus.

„Java“ sąsajos ir abstrakčios klasės pavyzdinis kodas

Toliau pateikiamas kodo pavyzdys, skirtas sukurti sąsają ir abstrakčią klasę „Java“

Sąsajos sintaksė

interface name{//methods}

„Java“ sąsajos pavyzdys:

interface Pet {public void test();}class Dog implements Pet {public void test() {System.out.println("Interface Method Implemented");}public static void main(String args[]) {Pet p = new Dog();p.test();}}

Anotacijos klasės sintaksė

abstract class name{// code}

Santraukos klasės pavyzdys:

abstract class Shape {int b = 20;abstract public void calculateArea();}public class Rectangle extends Shape {public static void main(String args[]) {Rectangle obj = new Rectangle();obj.b = 200;obj.calculateArea();}public void calculateArea() {System.out.println("Area is " + (obj.b * obj.b));}}