Liides sisse Java koos Näitega

Milles on liides Java?

An Liides sisse Java programmeerimiskeel on määratletud kui abstraktne tüüp, mida kasutatakse klassi käitumise täpsustamiseks. A Java liides sisaldab staatilisi konstante ja abstraktseid meetodeid. Klass võib rakendada mitut liidest. sisse Java, liidesed deklareeritakse liidese märksõna abil. Kõik liidese meetodid on vaikimisi avalikud ja abstraktsed.

Liidese deklareerimise süntaks

Klassis liidese kasutamiseks lisage oma klassi nime järele märksõna "rakendused", millele järgneb liidese nimi.

interface {
//methods
}

Rakendusliidese näide

Nüüd mõistame liidest Java näitega:

class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle

Click siin kui video pole juurdepääsetav

Miks on liidest vaja?

Liidese kasutamise mõistmiseks Java parem, vaatame Java liidese näide. Klassil “Meediamängija” on kaks alamklassi: CD-mängija ja DVD-mängija. Igal neist on ainulaadne liidese rakendamine Java muusika esitamise meetod.

Miks on liidest vaja

Teine klass "Combo drive" pärib nii CD kui ka DVD (vt pilti allpool). Millise mängumeetodi peaks see pärima? See võib põhjustada tõsiseid disainiprobleeme. Ja sellest tulenevalt, Java ei luba mitut pärimine.

Miks on liidest vaja

Võtame nüüd teise näite koerast.

Oletame, et teil on nõue, kus klass "koer" pärib klassi "loom" ja "lemmikloom" (vt pilti allpool). Kuid te ei saa kahte klassi pikendada Java. Mida sa siis teeksid? Lahenduseks on liides.

Miks on liidest vaja

Liidese reeglistik ütleb,

  • A Java rakendusliides on 100% abstraktne klass ja sellel on ainult abstraktsed meetodid.
  • Klass võib rakendada mis tahes arvu liideseid.

Klass Koer võib laieneda klassile "Loom" ja rakendada liidest kui "lemmikloom".

Miks on liidest vaja

Java Liidese näide:

Saame aru allolevast liideseprogrammist Java:

Step 1) Kopeerige järgmine kood redaktorisse.

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();
  }
}

Step 2) Salvestage, kompileerige ja käivitage kood. Jälgige liidese väljundit Java programm.

Erinevus klassi ja liidese vahel

klass
Interface
Klassis saate muuta muutujat ja luua objekti. Liideses ei saa muutujat eksemplari luua ja objekti luua.
Klass võib sisaldada konkreetseid (rakendusega) meetodeid Liides ei tohi sisaldada konkreetseid (rakendusega) meetodeid
Klasside juures kasutatavad juurdepääsuspetsifikaadid on privaatsed, kaitstud ja avalikud. Liideses kasutatakse ainult ühte määrajat – avalikku.

Millal kasutada liidest ja abstraktset klassi?

  • Kasutage abstraktset klassi, kui alamklasside rühma jaoks on vaja määratleda mall
  • Kasutage liidest, kui roll on vaja määratleda teiste klasside jaoks, olenemata nende klasside pärimispuust

Peab teadma fakte liidese kohta

  • A Java klass saab rakendada mitut Java Liidesed. On vaja, et klass rakendaks kõiki liidestes deklareeritud meetodeid.
  • Klass peaks alistama kõik liideses deklareeritud abstraktsed meetodid
  • Liides võimaldab saata sõnumit objektile, ilma et oleks oluline, millistesse klassidesse see kuulub.
  • Klass peab pakkuma liideses deklareeritud meetodite funktsionaalsust.
  • Kõik liidese meetodid on kaudselt avalikud ja abstraktsed
  • Liidest ei saa instantseerida
  • Liidese viide võib osutada selle rakendusklasside objektidele
  • Liides võib ulatuda ühest või mitmest liidesest. Klass saab laiendada ainult ühte klassi, kuid rakendada suvalist arvu liideseid
  • Liides ei saa rakendada teist liidest. Vajadusel peab see laiendama teist liidest.
  • Liidest, mis on deklareeritud teises liideses, nimetatakse pesastatud liideseks
  • Deklareerimise ajal tuleb liidese muutuja lähtestada. Vastasel juhul annab kompilaator veateate.
  • Klass ei saa javas rakendada kahte liidest, millel on sama nimega, kuid erineva tagastustüübiga meetodid.

Kokkuvõte:

  • Liidest rakendav klass peab pakkuma funktsionaalsust liideses deklareeritud meetodite jaoks
  • Kõik liidese meetodid on kaudselt avalikud ja abstraktsed
  • Liidest ei saa instantseerida
  • Liidese viide võib osutada selle rakendusklasside objektidele
  • Liides võib ulatuda ühest või mitmest liidesest. Klass saab laiendada ainult ühte klassi, kuid rakendada suvalist arvu liideseid

Võta see postitus kokku järgmiselt: