Préface
Le code statique a priorité sur le code non statique car les membres modifiés par statique sont tous des membres de la classe et seront exécutés car le JVM charge la classe. Les membres non modifiés par statique sont également appelés membres de l'instance. Des objets doivent être créés avant de pouvoir être chargés dans la mémoire du tas. Par conséquent, la statique sera préférée pour non-statique.
Lors de l'exécution du constructeur (méthode de construction), il existe trois étapes implicites avant d'exécuter le corps de la méthode:
1. La super déclaration peut avoir les trois situations suivantes:
1) La première ligne du constructeur est cette instruction et les trois étapes implicites ne seront pas exécutées.
2) La première ligne du corps du constructeur est une super déclaration, et le constructeur de la classe parent correspondante est appelé.
3) La première ligne du corps du constructeur n'est ni cette instruction ni une super instruction, et super () est appelée implicitement, c'est-à-dire le constructeur par défaut de sa classe parent, c'est pourquoi une classe parent doit généralement fournir un constructeur par défaut;
2. Initialiser les variables non statiques;
3. Construisez le bloc de code.
À partir de cela, nous pouvons voir que le bloc de code de construction a priorité sur le corps de la méthode de la méthode de construction, mais ce mot-clé et le mot-clé ne peuvent pas apparaître en même temps, et ne peuvent être que sur la première ligne du code. Si ce mot-clé apparaît, les trois étapes implicites ne seront pas exécutées.
Regardez d'abord les classes suivantes, puis jugez leur production:
classe publique a {statique {System.out.print (1); } public a () {System.out.print (2); }} La classe publique B étend un {statique {System.out.print ("a"); } public b () {System.out.print ("b"); }} classe publique C {public static void main (String [] args) {a a = new b (); a = new B (); }} L'ordre d'exécution de la classe des parents et de la classe enfant
Caractéristiques d'exécution des variables statiques
Remarques sur la remplacement de la méthode
1. Lorsque les classes parentales et enfants ont des blocs et des constructeurs de code statique, l'ordre d'exécution est le suivant:
Bloc de code statique de classe parent> Bloc de code statique de sous-classe
Constructeur de classe parent> Constructeur de sous-classe (d'abord il y a un père, alors il y a un enfant)
S'il s'agit d'une relation d'héritage à plusieurs niveaux, la classe parent au plus haut niveau sera exécutée en premier, puis décrémentée à son tour.
Résumé: L'exécution statique est préférée, l'exécution de la classe parent est préférée
Remarque: les blocs de code statiques sont exécutés lorsque le JVM charge la classe et les blocs de code statiques ne sont exécutés qu'une seule fois.
2. Lors de l'appel d'une méthode dans une classe, avant d'exécuter le corps de la méthode, les variables membre de la classe doivent être attribuées en premier. Si aucune valeur spécifique n'est attribuée dans le code, il existe également une valeur par défaut. L'ordre d'affectation des variables membre est effectué dans l'ordre avant et après.
S'il y a à la fois des affectations directes et des affectations de constructeurs, alors exécutez-les en séquence
3. Override (remplacer) surcharge (surcharge)
La surcharge est le nom de la méthode, le type de retour est le même, la seule différence est que les paramètres de méthode sont différents (différents types de paramètres, ou différents types de paramètres)
Récrire:
Polymorphisme:
La référence de la classe parent pointe vers l'objet de la sous-classe. La méthode exécutée lorsqu'elle est invoquée est également la méthode de la sous-classe. La méthode de la classe parent ne sera pas exécutée.
Le soi-disant polymorphisme signifie que la référence de la classe parent ou du type d'interface peut pointer vers une sous-classe ou une instance (objet) de la classe qui implémente l'interface.
Après avoir lu les instructions ci-dessus, vous devez également connaître les résultats de sortie du programme ci-dessus.
Le résultat de sortie est: 1A2B2B
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 a une certaine valeur de référence pour l'étude ou le travail de chacun. Si vous avez des questions, vous pouvez laisser un message pour communiquer. Merci pour votre soutien à wulin.com.