[JAVA] Différence entre interface et classe abstraite

Différence entre interface et classe abstraite

Classe abstraite

Les classes abstraites peuvent être appliquées en ajoutant des méthodes abstraites, les méthodes peuvent être créées comme d'habitude ⇒ En héritant, il est possible d'attacher de force une méthode d'une sous-classe. En d'autres termes, en donnant à la classe dérivée la même méthode et en créant de force la méthode Vous pouvez créer une classe qui vous donne une force coercitive

L'équipe a une classe commune appelée A qui utilise la méthode du taux de taxe que tout le monde utilise. Les taxes régionales varient selon la région, alors faites une méthode avec des classes dérivées individuelles.

interface

⇒ Une classe qui implémente une interface peut être placée dans la boîte de l'interface, c'est-à-dire que si l'interface est implémentée, elle peut être commutée entre A et B selon les conditions.

Échantillon (interface)

public interface ControlPanelIf {
    void play();
    void pause();
    void stop();
    void forwardFast();
    void backwordFast();
}
La classe qui implémente ceci est le code ci-dessous.

En fait, c'est souvent plus compliqué, mais écrivons-le comme un exemple.

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

    @Override
    public void stop() {
        System.out.println("Arrêt de la lecture du DVD");
    }

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

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

    @Override
    public void backwardFast() {
        System.out.println("Retour rapide de DVD");
    }
}
La classe qui utilise cette classe DVDDeck est la suivante.

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;
    }
}

Matériel de référence https://www.slideshare.net/graminmakeall/java-43178044?qid=6a49c149-fcb0-4aa8-87d0-2e4e2c18362b&v=&b=&from_search=5

Recommended Posts

Différence entre interface et classe abstraite
[JAVA] Différence entre abstrait et interface
abstract (classe abstraite) et interface (interface)
Différence entre classe et instance
Différence entre la méthode d'instance et la méthode de classe
interface et résumé
Différence entre la variable d'instance et la variable de classe
[JAVA] Quelle est la différence entre interface et abstract? ?? ??
Utilisation correcte de l'interface et de la classe abstraite
Différence entre vh et%
Différence entre i ++ et ++ i
Interface / classe abstraite / remplacement
Comprenez la différence entre les classes abstraites et les interfaces!
Différence entre redirect_to et render
[Java] Différence entre == et égal
Différence entre redirect_to et render
Différence entre CUI et GUI
Différence entre les variables et les variables d'instance
Différence entre mockito-core et mockito-all
Différence entre l'installation de bundle et de bundle
Relation entre le package et la classe
Différence entre ArrayList et LinkedList
Différence entre render et redirect_to
Différence entre List et ArrayList
Différence entre .bashrc et .bash_profile
Différence entre StringBuilder et StringBuffer
Différence entre render et redirect_to
Différence entre Spring AOP et la classe cible de la bibliothèque
Utilisation correcte de la classe abstraite et de l'interface en Java
[Ruby] Différence entre obtenir et publier
Différence entre l'opérateur == et la méthode égale
[Java] Différence entre Hashmap et HashTable
[Terminal] Différence entre irb et pry
JavaServlet: différence entre executeQuery et executeUpdate
[Ruby] Différence entre is_a? Et instance_of?
Différence entre l'opérateur == et la méthode eqals
Différence approximative entre RSpec et minitest
[Rails] Différence entre find et find_by
Différence entre Thymeleaf @RestController et @Controller
Différence entre Stream map et flatMap
À propos de la différence entre la classe Applet et la classe JApplet
[Java] Différence entre array et ArrayList
Différence entre le type primitif et le type de référence
Différence entre string.getByte () et Hex.decodeHex (string.toCharaArray ())
[Java] Différence entre fermable et fermable automatiquement
[Java] Différence entre StringBuffer et StringBuilder
[Java] Différence entre longueur, longueur () et taille ()
[rails] Différence entre redirect_to et render
[Android] Différence entre finish () et return;
[Ruby] Peut-être que vous ne comprenez pas vraiment? [Différence entre la classe et le module]
Facile à comprendre la différence entre la méthode d'instance Ruby et la méthode de classe.
Remarque: Différence entre Ruby "p" et "met"
Différence entre final et immuable en Java
[Remarque] Différence entre l'installation et la mise à jour du bundle
Différence entre la variable d'instance Ruby et la variable locale