Maison >Java >javaDidacticiel >La différence entre les classes abstraites et les interfaces en Java

La différence entre les classes abstraites et les interfaces en Java

WBOY
WBOYavant
2023-09-16 11:49:02846parcourir

La différence entre les classes abstraites et les interfaces en Java

En Java, l'abstraction est réalisée grâce à des classes et des interfaces abstraites. Les deux contiennent des méthodes abstraites que les sous-classes ou les classes d’implémentation doivent implémenter. Voici les différences importantes entre les classes abstraites et les interfaces.

thead>8

JavaTester.java
Sr.No.

clé

Classe abstraite

Interface

1

Méthodes prises en charge

Les classes abstraites peuvent avoir à la fois des résumés méthodes et méthodes spécifiques.

Les interfaces ne peuvent avoir que des méthodes abstraites. À partir de Java 8, il peut avoir des méthodes par défaut et statiques. L'interface prend en charge l'héritage multiple.

3

Variables prises en charge

Prend en charge les variables finales, non finales, statiques et non statiques.

Seules les variables statiques et finales sont autorisées.

4

Implementation

Les classes abstraites peuvent implémenter des interfaces.

L'interface n'a pas besoin d'implémenter l'interface, ou elle peut étendre l'interface.

5

Keywords

Une classe abstraite déclarée à l'aide du mot-clé abstract.

Les interfaces sont déclarées à l'aide du mot-clé interface.

6

Héritage

Une classe abstraite peut hériter d'une autre classe en utilisant le mot-clé extends et implémenter l'interface.

Les interfaces ne peuvent hériter que des interfaces.

7

Héritage

Les classes abstraites peuvent être héritées à l'aide du mot-clé extends.

Les interfaces ne peuvent être implémentées qu'à l'aide du mot-clé Implements.

Accès

Les classes abstraites peuvent avoir tout type de membres, tels que privés et publics.

Les interfaces ne peuvent avoir que des membres publics.

Exemple de classe abstraite et d'interface

public class JavaTester {
   public static void main(String args[]) {
      Animal tiger = new Tiger();
      tiger.eat();
      Cat lion = new Lion();
      lion.eat();
   }
}
interface Animal {
   public void eat();
}
class Tiger implements Animal {
   public void eat(){
      System.out.println("Tiger eats");
   }
}
abstract class Cat {
   abstract public void eat();
}
class Lion extends Cat{
   public void eat(){
      System.out.println("Lion eats");
   }
}
Output

Tiger eats
Lion eats

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer