[JAVA] Unterschied zwischen Schnittstelle und abstrakter Klasse

Unterschied zwischen Schnittstelle und abstrakter Klasse

Abstrakte Klasse

Abstrakte Klassen können durch Hinzufügen abstrakter Methoden erzwungen werden. Methoden können wie gewohnt erstellt werden ⇒ Durch Erben können Sie eine Unterklassenmethode zwangsweise anhängen. Mit anderen Worten, indem Sie der abgeleiteten Klasse dieselbe Methode geben und die Methode zwangsweise erstellen Sie können eine Klasse erstellen, die Ihnen Zwangskraft verleiht

Das Team hat eine gemeinsame Klasse namens A, die die Steuersatzmethode verwendet, die jeder verwendet. Die regionalen Steuern variieren von Region zu Region. Erstellen Sie daher eine Methode mit einzelnen abgeleiteten Klassen.

Schnittstelle

⇒ Eine Klasse, die eine Schnittstelle implementiert, kann in das Feld der Schnittstelle eingefügt werden. Mit anderen Worten, wenn die Schnittstelle implementiert ist, kann sie abhängig von den Bedingungen zwischen A und B umgeschaltet werden.

Probe (Schnittstelle)

public interface ControlPanelIf {
    void play();
    void pause();
    void stop();
    void forwardFast();
    void backwordFast();
}
Die Klasse, die dies implementiert, ist der folgende Code.

Eigentlich ist es oft komplizierter, aber schreiben wir es als Beispiel.

public class DvdDeck implements ControlPanelIf {
    @Override
    public void play() {
        System.out.println("DVD-Wiedergabe");
    }

    @Override
    public void stop() {
        System.out.println("DVD-Wiedergabestopp");
    }

    @Override
    public void pause() {
        System.out.println("DVD Pause");
    }

    @Override
    public void forwardFast() {
        System.out.println("DVD schneller Vorlauf");
    }

    @Override
    public void backwardFast() {
        System.out.println("DVD schnell zurückspulen");
    }
}
Die Klasse, die diese DVDDeck-Klasse verwendet, lautet wie folgt.

public class DeckUser {
    public static void main(String[] args) {
        ControlPanelIf myDeck = createDeck(args[0]);

        myDeck.play();
        myDeck.forwardFast();
        myDeck.pause();
        myDeck.play();
        myDeck.backwardFast();
    }

    private static ControlPanelIf createDeck(String deckType) {

        ControlPanelIf deck;
        if(deckType.equals("DVD") {
            deck = new DvdDeck();
        } else if(deckType.equals("BluRay") {
            deck = new BluRayDeck();
        } else if(deckType.equals("HDD") {
            deck = new HddRayDeck();
        } else {
            deck = new DvdDeck();
        }
        return deck;
    }
}

Referenzmaterial https://www.slideshare.net/graminmakeall/java-43178044?qid=6a49c149-fcb0-4aa8-87d0-2e4e2c18362b&v=&b=&from_search=5

Recommended Posts

Unterschied zwischen Schnittstelle und abstrakter Klasse
[JAVA] Unterschied zwischen Abstract und Interface
abstrakt (abstrakte Klasse) und Schnittstelle (Schnittstelle)
Unterschied zwischen Klasse und Instanz
Unterschied zwischen Instanzmethode und Klassenmethode
Schnittstelle und Zusammenfassung
Unterschied zwischen Instanzvariable und Klassenvariable
[JAVA] Was ist der Unterschied zwischen Schnittstelle und Zusammenfassung? ?? ??
Richtige Verwendung der Schnittstelle und der abstrakten Klasse
Unterschied zwischen vh und%
Unterschied zwischen i ++ und ++ i
Schnittstelle / Abstrakte Klasse / Überschreiben
Verstehe den Unterschied zwischen abstrakten Klassen und Schnittstellen!
Unterschied zwischen redirect_to und render
[Java] Unterschied zwischen == und gleich
Unterschied zwischen redirect_to und render
Unterschied zwischen CUI und GUI
Unterschied zwischen Variablen und Instanzvariablen
Unterschied zwischen Mockito-Core und Mockito-All
Unterschied zwischen Bundle und Bundle-Installation
Beziehung zwischen Paket und Klasse
Unterschied zwischen ArrayList und LinkedList
Unterschied zwischen render und redirect_to
Unterschied zwischen List und ArrayList
Unterschied zwischen .bashrc und .bash_profile
Unterschied zwischen StringBuilder und StringBuffer
Unterschied zwischen render und redirect_to
Unterschied zwischen Spring AOP und Bibliothekszielklasse
Verwendung von Abstract Class und Interface in Java richtig
[Ruby] Unterschied zwischen get und post
Unterschied zwischen == Operator und Methode gleich
[Java] Unterschied zwischen Hashmap und HashTable
[Terminal] Unterschied zwischen irb und pry
JavaServlet: Unterschied zwischen executeQuery und executeUpdate
[Ruby] Unterschied zwischen is_a? Und instance_of?
Unterschied zwischen dem Operator == und der Methode eqals
Grober Unterschied zwischen RSpec und Minitest
[Rails] Unterschied zwischen find und find_by
Unterschied zwischen Thymeleaf @RestController und @Controller
Unterschied zwischen Stream Map und FlatMap
[Java] Unterschied zwischen Array und ArrayList
Unterschied zwischen primitivem Typ und Referenztyp
Unterschied zwischen string.getByte () und Hex.decodeHex (string.toCharaArray ())
[Java] Unterschied zwischen Closeable und AutoCloseable
[Java] Unterschied zwischen StringBuffer und StringBuilder
[Java] Unterschied zwischen Länge, Länge () und Größe ()
[Rails] Unterschied zwischen redirect_to und Rendern
[Android] Unterschied zwischen finish () und return;
[Ruby] Vielleicht verstehst du das nicht wirklich? [Unterschied zwischen Klasse und Modul]
Der Unterschied zwischen der Ruby-Instanzmethode und der Klassenmethode ist leicht zu verstehen.
Hinweis: Unterschied zwischen Ruby "p" und "Puts"
Unterschied zwischen final und Immutable in Java
[Hinweis] Unterschied zwischen Bundle-Installation und -Update
Unterschied zwischen Ruby-Instanzvariable und lokaler Variable