Java Super Mots-clés
Le mot-clé Super est similaire à celui-ci, qui est utilisé pour représenter une instance de la classe actuelle, et Super est utilisé pour représenter une classe parent.
Super peut être utilisé dans les sous-classes pour obtenir des variables et des méthodes de membre de la classe parent à travers des points (.). Super peut également être utilisé dans les sous-classes de sous-classes, et Java peut tracer automatiquement la classe supérieure.
Le comportement de la classe parent est appelé, tout comme si le comportement était le comportement de cette classe, et le comportement d'appel ne doit pas se produire dans la classe parent, il peut automatiquement tracer la classe supérieure.
Fonctions du mot-clé Super:
Appelle une variable déclarée privée dans la classe parent.
Cliquez sur la méthode qui a été couverte.
Représente le constructeur de classe parent comme le nom de la méthode.
Appelez des variables cachées et des méthodes écrasées
classe publique Demo {public static void main (String [] args) {chien obj = new dog (); Declare une méthode Getter public GetDesc () {return desc;} public void move () {System.out.println ("Animals peut bouger"); ); ;
Résultats en cours:
Les animaux peuvent émousogs peuvent marcher et courir, rappelez-vous: les animaux sont les bons amis de l'homme
La méthode Move () peut également être définie dans certaines classes d'ancêtre, telles que la classe parent de la classe parent.
Pour appeler les variables cachées de la classe parent via Super, vous devez déclarer la méthode Getter dans la classe parent, car les membres de données déclarés privés ne sont pas visibles pour la sous-classe.
Appelez le constructeur de la classe parent
Dans de nombreux cas, le constructeur par défaut est utilisé pour initialiser l'objet de classe parent. Bien sûr, vous pouvez également utiliser Super pour afficher le constructeur qui appelle la classe parent.
classe publique Demo {public static void Main (String [] args) {chien obj = nouveau chien ("Huahua", 3); Cet. Nom = Nom;}} Class Dog étend Animal {int Age; ("Je suis un chiot mignon, mon nom est" + nom + ", i" + âge + "an");
Résultats en cours:
Je suis un chiot mignon, je m'appelle Huahua, j'ai 3 ans
Remarque: que ce soit super () ou this (), il doit être placé dans la première ligne du constructeur.
Il convient de noter:
Un autre constructeur est appelé dans le constructeur, et l'action d'appel doit être placée à la position de départ.
Un constructeur ne peut être appelé dans une méthode autre qu'un constructeur.
Un seul constructeur peut être appelé au sein d'un constructeur.
Si vous écrivez un constructeur sans appeler super () ou this (), le compilateur insérera automatiquement un appel au constructeur de la classe parent sans paramètres.
Enfin, notez la différence entre Super et ceci: Super n'est pas une référence à un objet, et Super ne peut pas être affecté à une autre variable d'objet.
Le polymorphisme de l'opérateur Java instanceof <BR /> apporte un problème, c'est de savoir comment juger le type de l'objet référence référencé par une variable. C ++ utilise des informations de type d'exécution (RTTI) et Java utilise l'opérateur d'instance.
L'opérateur d'instance est utilisé pour déterminer le type réel de l'objet référencé par une variable. Veuillez consulter le code suivant:
Demo de classe finale publique {public static void main (String [] args) {// référence à l'instance de personnes class des gens obj = new People (); objet ");} if (obj instance of People) {System.out.println (" Je suis un humain ");} if (obj instance de professeur) {System.out.println (" Je suis un professeur ");} if (obj instance de président) {System.out.println ("Je suis le directeur");} System.out.println ("----------------"); Line // Exemples se référer à la classe du professeur obj = nouveau professeur (); "Je suis un humain");} if (obj instance de professeur) {System.out.println ("Je suis un enseignant"); ));
Résultats en cours:
Je suis un objet, je suis un humain ------------------------------------------ -------------------------------------------------- ----------------------------
Comme on peut le voir, l'instance de renvoie True si la variable fait référence à une instance de la classe actuelle ou de sa sous-classe, sinon Faux.