Préface
Java est une langue orientée objet. Tous ceux qui ont appris que Java sait que l'encapsulation, l'héritage et le polymorphisme sont les trois caractéristiques des objets. Lorsque tout le monde a appris l'héritage, ils auraient plus ou moins l'impression que l'héritage peut m'aider à réaliser la réutilisation des cours. Par conséquent, de nombreux développeurs utiliseront naturellement l'héritage des classes lorsqu'ils doivent réutiliser un code, car c'est ce que le livre est écrit (c'est ce que l'enseignant enseigne). Cependant, il est en fait mal de le faire. L'utilisation à long terme de l'héritage à grande échelle apportera des coûts de maintenance élevés au code.
En fait, quand j'ai appris Java pour la première fois, je n'ai jamais entendu parler du terme combinaison et que l'enseignant ne l'a jamais expliqué. J'ai toujours pensé que j'avais perdu quelques points de connaissance, mais ce n'était pas le cas. Le terme combinaison doit être défini comme une chose qui pense pour le moment. Je crois que les lecteurs sont entrés en contact avec cela, mais je ne sais pas qu'il a ce nom.
En fait, la soi-disant combinaison est de créer une nouvelle classe pour appeler une classe qui a été créée et déboguée, de sorte que cette nouvelle classe peut être appelée une combinaison
Par exemple, je crée un peuple
classe publique People {Nom de chaîne privée; Âge privé; public void setName (String name) {this.name = name; } public String getName () {return this.name; } public int getage () {return this.age; } public void Setage (int Age) {this.age = age; }} Ensuite, je veux utiliser cette classe maintenant. Je peux ajouter de nouvelles fonctionnalités à cette classe. À l'heure actuelle, nous pouvons créer une nouvelle classe, puis créer l'objet des gens dans cette classe.
Par exemple, je crée maintenant une classe appelée Student
Étudiant de classe {People People = New People ();} Ensuite, vous pouvez ajouter des attributs à cette classe, comme définir une identité en tant qu'étudiant, dont je ne discuterai pas ici.
Ensuite, jetons un coup d'œil à l'héritage. En fait, l'héritage et la combinaison sont similaires. Voyons d'abord comment il est hérité.
Il y a un mot-clé appelé étendus dans Java, qui peut nous aider à hériter. Nous appelons la classe des parents de classe héritée, la classe de base, la super classe et les héritiers sont tous corrects, et nous appelons la sous-classe héritante ou la classe dérivée, etc.
Ici, nous définissons une classe
L'élève de classe publique étend les gens {// dosomething} De cette façon, la classe hérite de toutes les méthodes des membres et des variables des membres de la classe parent, mais notez que les champs ou méthodes déclarés comme autorisation privée ne seront pas hérités.
Pour prouver cela, nous écrivons une méthode dans la classe étudiante
String public re () {return this.name;}Ici, le compilateur rapportera une erreur "People.Name n'est pas visible". De là, nous pouvons voir que les champs ou méthodes déclarés comme privés ne peuvent pas être hérités. Si vous souhaitez l'hériter, vous pouvez changer privé à protégé. De cette façon, nous pouvons hériter du champ de nom en douceur.
De cette façon, nous initialisons tous les champs des personnes, ajoutons simplement ce bloc de code au code.
{this.age = 10; this.name = "zhangsan";}Ensuite, déclarez cet étudiant dans la fonction principale
Student Student = New Student (); System.out.println (Student.Getage ());
Maintenant, nous avons été surpris de constater que cette méthode d'écriture est possible. Bien que nous n'ayons pas déclaré de champs et de méthodes dans la sous-classe, nous pouvons toujours appeler Getage (); Et nous pouvons imprimer 10 en douceur
En effet, nous ne surchargez aucune méthode dans la sous-classe, nous appelons donc la classe de la classe parent, nous pouvons donc facilement accéder aux champs déclarés par la classe parent privée.
Après les avoir lus, je crois que tout le monde a une compréhension préliminaire de l'héritage. Donc, dans le mécanisme de succession, comment les méthodes de construction de chaque classe sont-elles appelées? La réponse est de les appeler en séquence de la classe parent à la classe enfant.
Tout en démontrant, je déclare d'abord trois classes Temp1, Temp2 et TEMP3. En même temps, TEMP3 hérite de Temp2, et Temp2 hérite de Temp1. De cette façon, nous avons mis une déclaration imprimée dans les méthodes de construction de chaque classe.
//Temp1System.out.println("i'm temp1 "); // temp2System.out.println (" I'm temp2 "); // temp3System.out.println (" I'm temp3 "); Par souci de commodité, j'ai écrit ceci ici, mais tout le monde doit faire attention au fait que ceux-ci sont placés dans les méthodes de construction de chaque catégorie.
Nous créons un objet TEMP3 dans la fonction principale
classe publique Mian {public static void main (String [] args) {temp3 temp3 = new TEMP3 (); }}Nous avons regardé la console et l'avons imprimée
Je suis temp1i'm temp2i'm temp3
À partir de cela, nous pouvons voir que nous devons d'abord créer l'objet de TEMP3, trouver le mot clé EXTENSE, puis suivre la chaîne d'héritage, trouver Temp2, et trouver le mot-clé EXTENSE, puis trouver Temp1, puis appeler le constructeur de Temp1, puis appeler un par un.
Résumer
Ce qui précède est l'intégralité du contenu de cet article. J'espère que le contenu de cet article sera d'une aide à votre étude ou à votre travail. Si vous avez des questions, vous pouvez laisser un message pour communiquer.