Käyttöliittymä sisään Java esimerkin kanssa
Mitä käyttöliittymä sisältää Java?
An Käyttöliittymä sisään Java ohjelmointikieli määritellään abstraktiksi tyypiksi, jota käytetään määrittämään luokan käyttäytymistä. A Java käyttöliittymä sisältää staattisia vakioita ja abstrakteja menetelmiä. Luokka voi toteuttaa useita rajapintoja. sisään Java, liitännät ilmoitetaan käyttämällä käyttöliittymäavainsanaa. Kaikki käyttöliittymän menetelmät ovat implisiittisesti julkisia ja abstrakteja.
Syntaksi ilmoittamisen rajapinnalle
Jos haluat käyttää käyttöliittymää luokassasi, lisää luokan nimen perään avainsana "implements" ja sen jälkeen käyttöliittymän nimi.
interface { //methods }
Esimerkki käyttöliittymästä
Ymmärretään nyt käyttöliittymä Java esimerkin kanssa:
class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle
Napauta tätä jos video ei ole saatavilla
Miksi käyttöliittymä vaaditaan?
Ymmärtääksesi käyttöliittymän käytön Java parempi, katsotaan Java käyttöliittymäesimerkki. Luokassa "Media Player" on kaksi alaluokkaa: CD-soitin ja DVD-soitin. Jokaisella on ainutlaatuinen käyttöliittymätoteutus Java tapa soittaa musiikkia.
Toinen luokka "Combo drive" perii sekä CD- että DVD-levyt (katso kuva alla). Minkä pelitavan sen tulisi periä? Tämä voi aiheuttaa vakavia suunnitteluongelmia. Ja siksi, Java ei salli useita perintö.
Otetaan nyt toinen esimerkki koirasta.
Oletetaan, että sinulla on vaatimus, jossa luokka "koira" perii luokan "eläin" ja "lemmikki" (katso kuva alla). Mutta et voi jatkaa kahta luokkaa Java. Mitä sinä sitten tekisit? Ratkaisu on Interface.
Käyttöliittymän sääntökirja sanoo,
- A Java toteuttaa käyttöliittymä on 100 % abstrakti luokka ja siinä on vain abstrakteja menetelmiä.
- Luokka voi toteuttaa minkä tahansa määrän rajapintoja.
Luokkakoira voi ulottua luokkaan "Eläimet" ja toteuttaa käyttöliittymän nimellä "Pet".
Java Esimerkki käyttöliittymästä:
Ymmärretään alla oleva käyttöliittymäohjelma Java:
Vaihe 1) Kopioi seuraava koodi editoriin.
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(); } }
Vaihe 2) Tallenna, käännä ja suorita koodi. Tarkkaile liitännän lähtöä Java ohjelma.
Ero luokan ja käyttöliittymän välillä
Luokassa voit instantoida muuttujan ja luoda objektin. | Käyttöliittymässä et voi instantoida muuttujaa ja luoda objektia. |
Luokka voi sisältää konkreettisia (toteutusmenetelmiä). | Rajapinta ei voi sisältää konkreettisia (toteutusmenetelmiä) menetelmiä |
Luokkien yhteydessä käytettävät käyttöoikeusmääritykset ovat yksityisiä, suojattuja ja julkisia. | Käyttöliittymässä on vain yksi määrittäjä - Julkinen. |
Milloin käyttöliittymää ja abstraktiluokkaa käytetään?
- Käytä abstraktia luokkaa, kun alaluokkien ryhmälle on määritettävä malli
- Käytä käyttöliittymää, kun rooli on määritettävä muille luokille, riippumatta näiden luokkien perintöpuusta
Täytyy tietää faktoja käyttöliittymästä
- A Java luokka voi toteuttaa useita Java Liitännät. On välttämätöntä, että luokan tulee toteuttaa kaikki rajapinnoissa ilmoitetut menetelmät.
- Luokan tulee ohittaa kaikki käyttöliittymässä ilmoitetut abstraktit menetelmät
- Rajapinta mahdollistaa viestin lähettämisen objektille välittämättä siitä, mihin luokkiin se kuuluu.
- Luokan on tarjottava toiminnallisuus rajapinnassa ilmoitetuille menetelmille.
- Kaikki käyttöliittymän menetelmät ovat implisiittisesti julkisia ja abstrakteja
- Käyttöliittymää ei voi instantoida
- Liitäntäviittaus voi osoittaa sen toteutusluokkien objekteja
- Käyttöliittymä voi ulottua yhdestä tai useammasta rajapinnasta. Luokka voi laajentaa vain yhtä luokkaa, mutta toteuttaa minkä tahansa määrän rajapintoja
- Liitäntä ei voi toteuttaa toista käyttöliittymää. Sen on tarvittaessa laajennettava toinen käyttöliittymä.
- Liittymää, joka on ilmoitettu toisen rajapinnan sisällä, kutsutaan sisäkkäiseksi rajapinnaksi
- Ilmoitushetkellä käyttöliittymämuuttuja on alustettava. Muussa tapauksessa kääntäjä antaa virheilmoituksen.
- Luokka ei voi toteuttaa kahta Java-rajapintaa, joilla on samanniminen metodi, mutta eri palautustyyppi.
Yhteenveto:
- Luokan, joka toteuttaa rajapinnan, on tarjottava toiminnallisuus rajapinnassa ilmoitetuille menetelmille
- Kaikki käyttöliittymän menetelmät ovat implisiittisesti julkisia ja abstrakteja
- Käyttöliittymää ei voi instantoida
- Liitäntäviittaus voi osoittaa sen toteutusluokkien objekteja
- Käyttöliittymä voi ulottua yhdestä tai useammasta rajapinnasta. Luokka voi laajentaa vain yhtä luokkaa, mutta toteuttaa minkä tahansa määrän rajapintoja