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.
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.
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.
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".
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
| 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




