Utilisation de super et ça
public class father{
//父类
protected String name = "小明";
public father(){
super();//他的父类是Object类
}
public father(String name){
this.name = name;
}
private void hello(){
System.out.println("hello");
}
}
public class son extends father{
//子类
public String name = "李华";
public son(){
super();//他的父类是father,默认代码,不写也不会报错
}
public son(String name){
this.name = name;
}
public void test2(){
this.test();
//super.hello();//会报错,不能使用父类中private的属性或方法
}
public void test(String name){
System.out.print(name);
System.out.print(this.name);
System.out.print(super.name);
}
}
public static void main(String[] args){
Son son = new son();
son.test("海王");
}
Production:
海王
李华
小明
en conclusion:
En héritant de la classe parente, la sous-classe peut utiliser les propriétés et méthodes associées de la classe parente
Il est à noter que:
- Les sous-classes ne peuvent pas hériter des propriétés privées ou des méthodes de la classe parent;
- Lorsque vous utilisez super () pour appeler le constructeur de la classe parent, il doit être sur la première ligne du constructeur
- super doit apparaître dans la méthode ou la méthode de construction de la sous-classe (Remarque: le code par défaut est masqué dans les paramètres de construction
super();
. Lorsque la classe parente n'a qu'une méthode de construction de paramètre et aucune méthode de construction sans paramètre, la sous-classe doit l'ajouter lors de l'appel de super ( ) Les paramètres ne sont pas des erreurs signalées, donc après avoir écrit la structure paramétrée dans la classe parent, il est préférable d'ajouter une structure sans paramètre ou d'utiliser des@lambok
annotations); - this: peut être utilisé sans héritage, fait référence aux propriétés ou méthodes de cette classe;
- super: représente l'application de l'objet de classe parent, qui ne peut être utilisé que sous héritage;
- super et cela n'a pas besoin d'appeler le constructeur en même temps;
Vous êtes invités à corriger toute erreur ou lacune dans le résumé.