Maison >Java >Javacommencer >Quelle est la différence entre this et super en Java ?

Quelle est la différence entre this et super en Java ?

王林
王林avant
2020-08-03 16:55:444399parcourir

Quelle est la différence entre this et super en Java ?

il s'agit d'un objet à part entière, représentant l'objet lui-même. Son utilisation est grossièrement divisée en trois catégories suivantes :

(Tutoriel recommandé : Java. tutoriel d'introduction )

1. Référence directe ordinaire à l'objet actuel lui-même

2. Les paramètres formels et les noms de membres ont le même nom, utilisez-le pour distinguer

. 3. Le constructeur de référence, this(parameter ) , doit être la première instruction du constructeur, appelant une autre forme de constructeur dans cette classe.

public class Demo{
     String name;
 
    public void setName(String name) {
       this.name = name;// 前一个name是 本类的成员属性: name;       
                       //  后一个name是setName中的参数。
    }
   public static void main(String[]args){
          
           Demo m=new Demo();
           m.setName("旺旺");
   }
   }

Super peut être compris comme pointant vers son propre objet de classe super (parent). Cette super classe fait référence à la classe parent la plus proche d'elle-même. Il est également grossièrement divisé en 3 utilisations :

(Recommandation du didacticiel vidéo : tutoriel vidéo Java )

1. Citation directe ordinaire, similaire à celle-ci, sauf que c'est le cas. Un objet de classe parent via lequel les membres de la classe parent peuvent être appelés.

2. Les variables ou méthodes membres de la sous-classe ont le même nom que les variables ou méthodes membres de la classe parent et peuvent être distinguées par super.

3. Constructeur de référence, super (paramètre) : Appelez un certain constructeur dans la classe parent (devrait être la première instruction du constructeur)

public class Main extends teacher{
	public static void main(String[] args) {
		//super();
	}
	public Main(){
		this();
		super();//出错,this()与super()不能同时出现,且this(),super()都必须在第一行
	}
}

class teacher {
}

La différence dans les attributs : ceci Accéder aux attributs dans cette classe. Si cette classe ne possède pas cet attribut, poursuivez la recherche à partir de la classe parent. super accède aux propriétés de la classe parent.

La différence entre les méthodes : cela accède à la méthode dans cette classe. Si cette classe n'a pas cette méthode, elle continuera à rechercher à partir de la classe parent. super accède aux méthodes de la classe parent.

La différence entre les constructions : ceci appelle la construction de cette classe et doit être placé en première ligne de la méthode de construction. super appelle le constructeur de la classe parent et doit être placé sur la première ligne de la méthode constructeur de sous-classe.

Autres différences : ceci représente l'objet actuel. super ne peut pas représenter l'objet actuel.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer