Maison >Java >JavaBase >La différence entre l'interface Java et la classe abstraite

La différence entre l'interface Java et la classe abstraite

(*-*)浩
(*-*)浩original
2019-11-11 11:18:023401parcourir

La différence entre l'interface Java et la classe abstraite

Interface

Concept

Une interface est un ensemble qui encapsule certaines fonctions . Pour abstraire un type de comportement, utilisez la modification de l'interface. (Apprentissage recommandé : cours java)

public interface InfClass {
    public void say();
}

Cours abstrait

Concept

En termes simples , une classe contenant une méthode abstraite est une classe abstraite. Une méthode abstraite n'a qu'un corps de méthode et aucune implémentation. Elle est modifiée avec abstract.

abstract class AbsClass {
    abstract void say();
}

Java fournit et prend en charge la création de classes et d'interfaces abstraites. Leurs implémentations ont quelque chose en commun, la différence est :

Toutes les méthodes de l'interface sont implicitement abstraites. Une classe abstraite peut contenir à la fois des méthodes abstraites et non abstraites.

Une classe peut implémenter de nombreuses interfaces, mais elle ne peut hériter que d'une seule classe abstraite

Une classe n'a pas besoin d'implémenter toutes les méthodes déclarées par classes et interfaces abstraites , bien entendu, dans ce cas, la classe doit également être déclarée abstraite.

Les classes abstraites peuvent implémenter des interfaces sans fournir d'implémentations de méthodes d'interface.

Les variables déclarées dans l'interface Java sont définitives par défaut. Les classes abstraites peuvent contenir des variables non finales.

Les fonctions membres dans les interfaces Java sont publiques par défaut. Les fonctions membres d'une classe abstraite peuvent être privées, protégées ou publiques.

Les interfaces sont absolument abstraites et ne peuvent pas être instanciées, et les classes abstraites ne peuvent pas être instanciées.

Si une classe implémente une interface, elle doit implémenter toutes les méthodes de l'interface, et une classe abstraite ne le fait pas nécessairement

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn