Java-Lernen (sehr detailliert) neun (Schnittstelle)

Inhaltsverzeichnis

1. Warum Schnittstellen verwenden?

2. Was ist eine Schnittstelle?

3. Schritte zum Erstellen einer Schnittstelle

4. Schnittstelle ist eine Fähigkeit

5. Eine Schnittstelle ist eine Konvention

6. Beispiel für eine objektorientierte Schnittstellenprogrammierung


1. Warum Schnittstellen verwenden?

Warum Schnittstellen verwenden? Wir haben bereits früher etwas über Vererbung gelernt. Wir alle wissen, dass Unterklassen bei der Vererbung nur eine direkte übergeordnete Klasse erben können, aber in vielen Szenarien müssen wir mehrere übergeordnete Klassen erben. Was sollen wir tun? Zu diesem Zeitpunkt entstand die Schnittstelle.

Die Schnittstelle kann in Java eine „Mehrfachvererbung“ realisieren

Beispiel:

public interface Lock {}   //接口
public interface DoorBell {}     //接口
public class Door {}        //父类
public class SecurityDoor extends Door implements Lock,DoorBell{}    //子类

2. Was ist eine Schnittstelle?

  1. Das Schlüsselwort für eine Schnittstelle ist Schnittstelle
  2. Alle Methoden der Schnittstelle werden standardmäßig mit öffentlichem Abstract geändert (beschreibbar oder nicht).
  3. Schnittstelle kann nicht instanziiert werden
  4. Die implementierende Klasse muss alle Methoden der Schnittstelle implementieren
  5. Eine implementierende Klasse kann mehrere Schnittstellen implementieren
  6. Die Variablen in der Schnittstelle sind alle statische Konstanten

3. Schritte zum Erstellen einer Schnittstelle

(1) Erstellen Sie eine Schnittstelle

        (a) Auf die erste Art erstellt, wird die Klasse in eine Schnittstelle geändert

        (b) Die zweite Möglichkeit zum Erstellen besteht darin, eine Schnittstelle direkt zu erstellen

public interface USB {
    void charge();
}

(2) Erstellen Sie eine Implementierungsklasse

public class Phone implements USB{
    @Override
    public void charge() {
        System.out.println("充电");
    }
}

(3) Anrufschnittstelle

public class Test {
    public static void main(String[] args) {
        USB usb = new Phone();
        usb.charge();
    }
}

4. Schnittstelle ist eine Fähigkeit

Formel: A hat B [A hat die Fähigkeit (Funktion) von B]

===》Ableiten, dass A B implementiert [B ist die Schnittstelle, A ist die Implementierungsklasse]

5. Eine Schnittstelle ist eine Konvention

1. Einige Schnittstellen haben keine Namen und keine Methoden

2. Einige Schnittstellen müssen sich durch Anmerkungen auf die Implementierungsregeln der Schnittstelle einigen

6. Beispiel für eine objektorientierte Schnittstellenprogrammierung

Entwickeln Sie einen Drucker

        Tintenpatronen: Farbe, Schwarz und Weiß

        Papiertyp: A4, B5

        Tintenpatronen und Papier werden nicht vom Druckerhersteller bereitgestellt

        Druckerhersteller müssen mit den auf dem Markt erhältlichen Tintenpatronen und Papier kompatibel sein

Die Spezifikationen für Patronen und Papier sind eine Konvention

Drucker müssen sich an diese Konventionen halten

Entwickelt mit schnittstellenorientierter Programmierung

        Legen Sie Konventionen oder Standards für Tintenpatronen und Papier fest

        Druckerhersteller entwickeln Drucker unter Verwendung von Standards für Tintenpatronen und Papier

        Andere Hersteller produzieren Tintenpatronen und Papier nach den Standards für Tintenpatronen und Papier

public interface MoHe {
    String getMoHe();
}
public interface Paper {
    String getPaperType();
}
public class A4Paper implements Paper{
    @Override
    public String getPaperType() {
        return "A4";
    }
}
public class B5Paper implements Paper{
    @Override
    public String getPaperType() {
        return "B5";
    }
}
public class ColorMoHe implements MoHe{
    @Override
    public String getMoHe() {
        return "彩色墨盒";
    }
}
public class WhiteMoHe implements MoHe{
    @Override
    public String getMoHe() {
        return "黑白墨盒";
    }
}
public class Printer {
    private MoHe mohe;
    private Paper paper;
    public void print(){
        System.out.println("使用"+getMohe()+"在"+getPaper()+"纸张上打印");
    }

    public MoHe getMohe() {
        return mohe;
    }

    public void setMohe(MoHe mohe) {
        this.mohe = mohe;
    }

    public Paper getPaper() {
        return paper;
    }

    public void setPaper(Paper paper) {
        this.paper = paper;
    }
}
public class Test {
    public static void main(String[] args) {
        Printer printer = new Printer();
        MoHe moHe = new ColorMoHe();
        printer.setMohe(moHe);

        Paper paper = new A4Paper();
        printer.setPaper(paper);

        printer.print();
    }
}

Ich denke du magst

Origin blog.csdn.net/jojo_oulaoula/article/details/131230466
Empfohlen
Rangfolge