Java >> Java tutorial >  >> Java

Java-grænseflade | Definition, brug, metoder | Hvad er ? Sådan implementeres eksempel

Java-grænsefladedefinition (Hvad er en grænseflade)

Java-grænseflade giver 100% abstraktion. Grænsefladen har også metoder og variabler som en klasse, men metoder er som standard abstrakte. Bretter ingen Krop eller sætning i metoden den eneste erklæring. Og variabler i grænsefladen er konstante, hvilket betyder, at felter som standard er offentlige, statiske og endelige.

Grænsefladen er et sæt instruktioner eller tegninger af en klasse.

Denne Java-grænsefladetutorial er en komplet oversigt og detaljer om alt i Java Interface. Ligesom dens definition, brug,  standardmetoder, statisk metode, variabler og hvordan man implementerer Java-grænsefladen.

Bemærk: Skal læse nye funktioner i Java-grænsefladen som nævnt nederst i dette kapitel.

Brug af grænseflade i Java

Her er nogle vigtige brug eller behov for Interface i programmering.

  • Første og hovedårsagen til at bruge interface er at opnå total abstraktion.
  • Java understøtter ikke Multiple Inheritance gennem klasse, så med Interface er Multiple Inheritance muligt.
  • Det er Giv en løs kobling.

Syntaks

Her Java Interface-syntaks, hvordan man deklarerer en grænseflade. Brug grænsefladen for at angive en grænseflade søgeord som nævnt nedenfor.

interface <interface_name> {
    // declare constant fields
    // declare abstract methods 
}

Eksempel på Java-grænseflade

Samme som vi definerer en klasse i Java brugt "class keyword". Her skal du bruge et "interface" nøgleord for at oprette en grænseflade.

Her er et eksempel på et Java-interface, hvordan man opretter sit program? Se nedenfor kode en meget nem at gøre det.

public interface InterfaceExample {
    // Variables
    // methods
}

Endnu et eksempel med nogle metoder og variabler.

public interface MyInterface {

    String hello = "Hello";

    void sayHello();
}

Sådan implementeres Java-grænseflade

Inden vi kommer ind på Implementer-delen, lad os se på et "Relation mellem klasser og grænseflader". Én efter én vil vi se på alle eksempler på implementering af en grænseflade med klasse og grænseflade.

klasse – klasse:udvider

Kode:

class Vehicle {
    void run(){
        System.out.println("Running");
    }
}
 
class TwoWheeler extends Vehicle {
    void wheel(){
        System.out.println("2 Wheeler");
    }
}

klasse – interface:implementerer

Kode:

public interface MyInterface {

    String hello = "Hello";

    void sayHello();
}

Skal implementere alle metoder i grænsefladen.

class MyClass implements MyInterface {
    @Override
    public void sayHello() {

    }
}

grænseflade – grænseflade:udvides

Kode:

public interface MyInterface {

    String hello = "Hello";

    void sayHello();
}
public interface OtherInterface extends MyInterface {

}

De øverste diagrammer viser relationer og forklaringer, lad os nu lave et praktisk eksempel "Implementering af en grænseflade".

Når klassen skal arve en grænsefladeegenskab, skal den bruge implements nøgleord.

interface Vehicle {

    void maxSpeed();
}

public class Bike implements Vehicle {

    @Override
    public void maxSpeed() {
        System.out.println("120 Km/H");
    }

    public static void main(String arg[]) {
        Bike bike = new Bike();
        bike.maxSpeed();
    }
}

Output: 120 km/t

Java-grænsefladekonstruktør

Der er ingen konstruktør af grænsefladen, for som vi nu kalder en konstruktørs behov for at skabe et objekt med et nyt nøgleord. Men Interface har brugt ved arv.

Så der er ingen konstruktør indtil nu i grænsefladen.

Grænseflade metoder

Java-grænsefladestandardmetoder er abstrakte metoder og nogle nye opdateringer siden Java 8.

Standardmetode i grænseflade

En ny opdatering fra Java 8, metode ikke længere kun erklæring. Menas metoder kan have kopi og sætninger, men metoder bør være en standardadgangsmodifikator

Lad os se et eksempel:

interface NewInterface {

    default void sayHello() {
        System.out.println("default method");
    }
}

class MyClass implements NewInterface {

    public static void main(String args[]) {
        MyClass myClass = new MyClass();
        myClass.sayHello();
    }

    @Override
    public void sayHello() {
        System.out.println("A Interface default method");
    }
}

Output: En grænsefladestandardmetode

Statisk metode i grænseflade

Samme som Java 8 som nu tillader at bruge statiske metoder i grænsefladen. Lad os se et eksempel:

interface NewInterface {

    static void sayHello() {
        System.out.println("The Interface static method");
    }
}

class MyClass implements NewInterface {

    public static void main(String args[]) {
      NewInterface.sayHello();
    }
}

Output: Den statiske grænseflademetode

Grænsefladevariabler

Java-grænsefladevariabler er en konstant før Java 8, for nu, kan indeholde både variabler og konstanter. Alle variabler i en grænseflade bør være offentlig adgangsmodifikator, selvom du lader det være et tomt nøgleord i variabeldeklarationen.

Trættende tilføje interface-variabler som private eller beskyttede eller standard vil vise fejl – Modifikator "standard eller andet" er ikke tilladt her.

grænsefladearv

Java-grænsefladearvning udføres ved at bruge implements nøgleordet. Det giver også en mulighed i java for at udføre flere nedarvninger.

interface Vehicle {

    void maxSpeed();
}

interface Brand{
    void name();
}

public class Bike implements Vehicle,Brand{

    @Override
    public void maxSpeed() {
        System.out.println("120 Km/H");
    }

    @Override
    public void name() {
        System.out.println("Yamaha");
    }

    public static void main(String arg[]) {
        Bike bike = new Bike();
        bike.maxSpeed();
        bike.name();
    }
    
}

Output: 120 km/t
Yamaha

Indlejret grænseflade i Java

En indlejret grænseflade er, hvad der er inde i en anden grænseflade. Nedenfor er et programmeringskodeeksempel på Indlejret grænseflade. Det samme som at definere en indlejret klasse.

public interface MyInterface {

    String hello = "Hello";

    void sayHello();

    interface MessageInterface {
        void msg();
    }
}

Her er Java-grænsefladeattributter og nogle regler:

  • En grænseflade har kun abstrakte metoder.
  • Klassen kan implementere et hvilket som helst antal grænseflader.
  • Alle offentlige metoder og felter er som standard offentlige, statiske og endelige. (Java-modifikatorer)
  • En klasse skal implementere alle erklærede metoder for en grænseflade.

JDK 8 – Nye funktioner tilføjet i grænseflader

Her er nye funktioner eller ændringer af Interface i Java 8.

  • Java 8 tillader grænseflader at have standard og statiske metoder.

JDK 9 – Nye funktioner tilføjet i grænseflader

Fra Java 9 og fremefter har nogle ændringer, grænseflader kan indeholde følgende.

  • Statiske metoder
  • Private metoder
  • Private statiske metoder

Sp:Hvilke Java-typer kan implementere grænseflader?

Svar: En Java Interface kan implementere med følgende typer som nedenstående liste:

  • Java-klasse
  • Abstrakt klasse
  • Java Enum
  • Dynamisk proxy
  • Indlejret klasse

Kommenter nedenfor, hvis du er i tvivl eller forslag med eksempler og detaljer.


Java tag