Nous savons tous que les objets sont décrits à travers des classes, mais cela ne signifie pas que toutes les classes sont utilisées pour décrire des objets
Il n'y a pas assez d'informations dans une classe pour décrire un objet spécifique, c'est la classe abstraite
Mots clés de la classe abstraite : abstract
Tout d'abord, jetons un coup d'œil à la classe écrite avant :
class Plant { String name; String source; String genus; public void trait() { System.out.println("父类方法"); } } class Tree extends Plant { @Override public void trait() { System.out.println("子类方法"); } }
Puisque la méthode trait est une méthode surchargée, alors il y a pas besoin du tout d'implémenter le trait de la classe parent, nous pouvons donc le changer en méthode abstraite
Remarque : une classe abstraite ne peut avoir aucune méthode abstraite, mais la méthode abstraite doit être dans la classe abstraite
abstract class Plant { String name; String source; String genus; public abstract void trait(); } class Tree extends Plant { @Override public void trait() { System.out.println("子类方法"); } }
1. Les classes abstraites sont destinées à être héritées, elles ne peuvent donc pas être instanciées. À part cela, elles ne sont pas différentes des classes ordinaires
2. mais les méthodes abstraites doivent être dans des classes abstraites.
3 Lorsqu'une classe normale hérite d'une classe abstraite, elle doit réécrire toutes les méthodes abstraites de la classe abstraite
4. pas besoin de réécrire les méthodes abstraites pour le moment
5. Final ne peut pas modifier les classes abstraites et les méthodes abstraites
6. Les méthodes abstraites ne peuvent pas être modifiées avec private et static
Certaines personnes peuvent trouver cela étrange : les classes ordinaires peuvent également être héritées comme classes parentes, pourquoi devons-nous créer une autre classe abstraite ?
Autant supposer un scénario : vous instanciez l'objet classe parent lors de l'instanciation de l'objet, comme suit :
public static void main(String[] args) { Plant tree=new Plant(); tree.trait(); }
Si la classe parent est une classe normale, le compilateur ne signalera pas d'erreur à ce moment et appellera directement le méthode de la classe parent
Si la classe parent est une classe abstraite, parce que la classe abstraite ne peut pas être instanciée, le compilateur signalera directement une erreur, afin que le problème puisse être découvert plus tôt
La soi-disant interface est une spécification comportementale publique. Par exemple, pour le papier A4, le format du papier A4 est de 210 mm x 297 mm, vous ne pouvez alors produire que selon cette spécification
En Java, l'interface peut être considérée comme la spécification publique de plusieurs classes, et il s'agit d'un type de référence Data
Mot-clé d'interface : interface
Les interfaces doivent également faire attention à certaines choses :
1 Les interfaces sont également utilisées pour être implémentées. par d'autres classes et ne peuvent pas être instanciées
2. À l'intérieur de l'interface, les méthodes ne peuvent être que des méthodes abstraites, et la valeur par défaut est une modification statique publique
3 Les variables membres de l'interface sont des constantes statiques par défaut, elles doivent donc être initialisées
.4. Le mot-clé utilisé pour implémenter l'interface est Implements, et l'interface d'implémentation de classe doit encore être réécrite. Toutes les méthodes abstraites de l'interface
5 Les interfaces ne peuvent pas avoir de constructeurs et de blocs de code statiques
6.
7. Lors de la création d'une interface, le nom de l'interface commence généralement par la lettre majuscule "I" (recommandé, pas une exigence stricte)
8 Les interfaces peuvent également atteindre le polymorphisme
Le rôle principal des interfaces en Java est. pour implémenter plusieurs héritages
Une classe en Java ne peut hériter que d'une seule classe parent, mais elle peut implémenter plusieurs interfaces
Les classes abstraites et les interfaces sont similaires, mais la différence la plus essentielle entre elles est que les classes abstraites peuvent avoir des méthodes membres ordinaires et ordinaires variables membres, alors que les méthodes dans les interfaces ne peuvent être que des méthodes abstraites
L'introduction aux classes abstraites et aux interfaces est terminée, le prochain article présentera certaines des interfaces les plus importantes de Java
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!