[JAVA] Différence entre abstrait et interface

J'étais gêné de ne pas pouvoir répondre à la spécification du langage Java lors de l'entretien, alors je vais le réapprendre.

À propos de la relation entre l'interface et l'abstrait

Exprimé de diverses manières.

# interface abstract
Caractéristiques Utilisé lorsque vous souhaitez définir comme spécification de classe Utilisé lorsqu'il existe une relation d'héritage et que vous souhaitez réutiliser le processus
Relation avec la classe d'implémentation ou la classe concrète Classe d'implémentationCANFonction abstraite Classe de bétonISClasse abstraite

Différence de code

interface

//abstrait
public interface Cashier {
    void bill();
}

//Classe de mise en œuvre 1
public class CreditCart implements Cashier {
    public CreditCart(){
    }    
    @Override
    public void bill(){
        System.out.println("billed by credit card");
    }
}
//Classe d'implémentation 2
public class Cash implements Cashier {
    @Override
    public void bill() {
        System.out.println("billed by cash");
    }
}

abstract

//Classe abstraite
public abstract class Animal {
    String name;
    public Animal(String name) {
        this.name = name;
    }
    public void sleep() {
        System.out.println("Sleeping");
    }
    public abstract void speak();
}

//Classe de mise en œuvre 1
public class Human extends Animal {   
    public Human(String name) {
        super(name);
    }   
    @Override
    public void speak() {
        System.out.println(name + " speack human languages");
    }
}
//Classe d'implémentation 2
public class Cat extends Animal {
    public Cat(String name) {
        super(name);
    }   
    @Override
    public void speak() {
        System.out.println(name + " speack cat's language");
    }
}

Portée du qualificatif

# Même classe Même paquet Sublux tout
default - -
private - - -
protected -
public

Recommended Posts

[JAVA] Différence entre abstrait et interface
Différence entre interface et classe abstraite
[JAVA] Quelle est la différence entre interface et abstract? ?? ??
[Java] Différence entre == et égal
[Java] Différence entre Hashmap et HashTable
interface et résumé
[Java] Différence entre array et ArrayList
[Java] Différence entre fermable et fermable automatiquement
[Java] Différence entre StringBuffer et StringBuilder
[Java] Différence entre longueur, longueur () et taille ()
[Pour les débutants] Différence entre Java et Kotlin
[Java] Différence entre la plage Intstream et la plageClosed
Différence entre int et Integer en Java
Différence entre vh et%
Différence entre i ++ et ++ i
[Java] Comprendre la différence entre List et Set
Différence entre next () et nextLine () dans Java Scanner
Comprenez la différence entre les classes abstraites et les interfaces!
[Java] Différence entre "variable finale" et "objet immuable"
Résumé d'héritage avancé, interface -java
Différence entre produit et variante
Différence entre redirect_to et render
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 classe et instance
Différence entre l'installation de bundle et de bundle
Différence entre ArrayList et LinkedList
Différence entre render et redirect_to
Différence entre List et ArrayList
java Generics T et? Différence
Différence entre .bashrc et .bash_profile
Différence entre StringBuilder et StringBuffer
Différence entre render et redirect_to
Méthodes et classes abstraites Java
[Java] Différence entre statique final et final dans les variables membres
Utilisation correcte de la classe abstraite et de l'interface en Java
[Java débutant] Différence entre la longueur et la longueur () ~ Je ne sais pas ~
[Ruby] Différence entre obtenir et publier
Différence entre la méthode d'instance et la méthode de classe
Différence entre l'opérateur == et la méthode égale
Différences entre Java "débutant" et Kotlin
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 entre Java et JavaScript (comment trouver la moyenne)
java (interface)
Différence approximative entre RSpec et minitest
[Rails] Différence entre find et find_by
Différence entre la variable d'instance et la variable de classe
interface [java]
[Java] Relation entre H2DB et JDBC
Différence entre Thymeleaf @RestController et @Controller
Différence entre Stream map et flatMap
[Java] Différence entre l’affectation d’une variable de type de base et l’affectation d’une variable de type de référence