Kas ir Java saskarne ar piemēru

Satura rādītājs:

Anonim

Kas ir Java saskarne?

Interface Java programmēšanas tiek definēta kā abstraktu tipu izmanto, lai norādītu uzvedību klasē. Java saskarne satur statiskas konstantes un abstraktas metodes. Klase var ieviest vairākas saskarnes. Java saskarnes tiek deklarētas, izmantojot saskarnes atslēgvārdu. Visas saskarnes metodes ir netieši publiskas un abstraktas.

Saskarnes deklarēšanas sintakse

interface {//methods}

Lai savā klasē izmantotu saskarni, pēc klases nosaukuma, kam seko interfeisa nosaukums, pievienojiet atslēgvārdu “īsteno”.

Interfeisa ieviešanas piemērs

class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle

Noklikšķiniet šeit, ja videoklips nav pieejams

Kāpēc nepieciešama saskarne?

Lai labāk izprastu Java saskarnes jēdzienu, skatiet piemēru. Klasē "Media Player" ir divas apakšklases: CD atskaņotājs un DVD atskaņotājs. Katram no tiem ir sava unikālā mūzikas atskaņošanas metode.

Cita klase "Combo drive" pārmanto gan CD, gan DVD (skat. Attēlu zemāk). Kuru spēles metodi tai vajadzētu pārmantot? Tas var izraisīt nopietnas dizaina problēmas. Tādējādi Java nepieļauj vairākkārtēju mantošanu.

Tagad ņemsim vēl vienu suns piemēru.

Pieņemsim, ka jums ir prasība, kur klase "suns" manto klases "dzīvnieks" un "mājdzīvnieks" (skat. Attēlu zemāk). Bet jūs nevarat pagarināt divas Java klases. Tātad, ko jūs darītu? Risinājums ir saskarne.

Interfeisa noteikumu grāmatā ir teikts:

  • Interfeiss ir 100% abstrakta klase, un tam ir tikai abstraktas metodes.
  • Klase var ieviest jebkuru saskarņu skaitu.

Klases suns var paplašināt klasi "Dzīvnieks" un ieviest saskarni kā "Dzīvnieks".

Java saskarnes piemērs:

1. darbība. Nokopējiet šo kodu redaktorā.

interfeiss Pet {publiska tukšuma pārbaude ();}klases suns īsteno Pet {public void test () {System.out.println ("Interfeisa metode ieviesta");}public static void main (String args []) {Pet p = jauns suns ();p.test ();}}

2. solis. Saglabājiet, kompilējiet un palaidiet kodu. Ievērojiet izvadi.

Atšķirība starp klasi un saskarni

Klase Saskarne
Klasē jūs varat instantizēt mainīgo un izveidot objektu. Interfeisā nevar iestatīt mainīgo un izveidot objektu.
Klase var ietvert konkrētas (ar ieviešanu) metodes Saskarne nevar saturēt konkrētas (ar ieviešanu) metodes

Ar klasēm izmantotie piekļuves specifikatori ir privāti, aizsargāti un publiski.

Interfeisā tiek izmantots tikai viens specifikators - Publisks.

Kad lietot interfeisu un abstrakto klasi?

  • Izmantojiet abstraktu klasi, kad apakšklases grupai jānosaka veidne
  • Izmantojiet saskarni, kad loma ir jādefinē citām klasēm neatkarīgi no šo klašu mantojuma koka

Jāzina fakti par saskarni

  • Java klase var ieviest vairākas Java saskarnes. Ir nepieciešams, lai klase ieviestu visas saskarnēs deklarētās metodes.
  • Klasei vajadzētu ignorēt visas abstraktās metodes, kas deklarētas saskarnē
  • Saskarne ļauj nosūtīt ziņojumu objektam, neskarot, kurām klasēm tas pieder.
  • Klasei jānodrošina interfeisā deklarēto metožu funkcionalitāte.
  • Visas saskarnes metodes ir netieši publiskas un abstraktas
  • Saskarni nevar instantizēt
  • Interfeisa atsauce var norādīt uz tās ieviešanas klases objektiem
  • Interfeiss var paplašināties no vienas vai vairākām saskarnēm. Klase var paplašināt tikai vienu klasi, bet ieviest jebkuru saskarņu skaitu
  • Interfeiss nevar ieviest citu saskarni. Ja nepieciešams, tai jāpaplašina vēl viena saskarne.
  • Interfeiss, kas ir deklarēts citas saskarnes iekšienē, tiek saukts par ligzdotu interfeisu
  • Deklarēšanas laikā interfeisa mainīgais ir jāinicializē. Pretējā gadījumā sastādītājs izmetīs kļūdu.
  • Klase nevar Java ieviest divas saskarnes, kurām ir metodes ar tādu pašu nosaukumu, bet atšķirīgs atgriešanās veids.

Kopsavilkums :

  • Klasei, kas ievieš saskarni, jānodrošina saskarnē deklarēto metožu funkcionalitāte
  • Visas saskarnes metodes ir netieši publiskas un abstraktas
  • Saskarni nevar instantizēt
  • Interfeisa atsauce var norādīt uz tās ieviešanas klases objektiem
  • Interfeiss var paplašināties no vienas vai vairākām saskarnēm. Klase var paplašināt tikai vienu klasi, bet ieviest jebkuru skaitu saskarņu