Cet article vous apporte des connaissances pertinentes sur java Une fois que la sous-classe a hérité de la classe parent, vous pouvez écrire une méthode dans la sous-classe avec le même nom et les mêmes paramètres que la classe parent, afin de réaliser la méthode de celle-ci. nom et les mêmes paramètres dans la classe parent. Écrasement de méthode, nous appelons ce processus réécriture de méthodes, jetons-y un coup d'œil, j'espère que cela sera utile à tout le monde.
Étude recommandée : "Tutoriel vidéo Java"
Après qu'une sous-classe hérite d'une classe parent, vous pouvez écrire une méthode dans la sous-classe avec le même nom et les mêmes paramètres que la classe parent, donc quant à implémenter la classe parent Pour remplacer les méthodes avec le même nom et les mêmes paramètres, nous appelons ce processus override
2.2 Question et analyse
Par exemple, il y a une classe parent Peple et une sous-classe chinoise. Il y a une méthode say() dans la classe parent, qui fait sortir la personne qui parle, mais quand je veux. Lors de l'appel de la sous-classe, la sortie est en chinois. Évidemment, appeler la méthode directement ne fonctionne pas, donc la méthode say doit être réécrite dans la sous-classe
2.3 Exemple de code
Classe People
public class Peple { private String name; private String sex; private int age; private int weight; public Peple() { } public Peple(String name, String sex, int age, int weight) { this.name = name; this.sex = sex; this.age = age; this.weight=weight; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getWeight() { return weight; } public void setWeight(int weight) { this.weight = weight; } public void say(){ System.out.println("人在说话"); } }
Classe chinoise
public class Chinese extends Peple{ public Chinese() { } @Override public void say() { System.out.println("中国人在说话"); } }
Classe Test03.
public class Test03 { public static void main(String[] args) { Chinese c=new Chinese(); c.say(); //当进行方法重写时,调用的是子类的say()方法 } }
2.4 Exemple de code en cours d'exécution capture d'écran
3. Comment utiliser la substitution de méthode
3.1 Syntaxe de base@Override 权限修饰符 返回值类型 方法名(形参列表){ //子类重写的方法的权限修饰符的访问权限必须大于等于父类的,但是父类不能是private //当父类的返回值类型为基本数据类型或者为void时,子类方法的返回值类型也应该为对应的基本数据类型或者void }
a Exemple de code
Classe People
public class Peple { private String name; private String sex; private int age; private int weight; public Peple() { } public Peple(String name, String sex, int age, int weight) { this.name = name; this.sex = sex; this.age = age; this.weight=weight; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getWeight() { return weight; } public void setWeight(int weight) { this.weight = weight; } //没有写访问权限的话,默认是default访问权限 void say(){ System.out.println("人在说话"); } }
Classe chinoise
public class Chinese extends Peple{ public Chinese(){ } //父类say方法的访问权限为default,子类say方法的访问权限为public, // 符合子类方法访问权限大于等于父类方法访问权限的要求 @Override public void say() { System.out.println("中国人在说话"); } }
Classe Test03
public class Test03 { public static void main(String[] args) { Chinese c=new Chinese(); c.say(); } }
b Exemple de code exécutant une capture d'écran
3.2.2 Lorsque le La méthode de la classe parent renvoie Lorsque le type de valeur est un type de données de base, le type de valeur de retour de la méthode remplacée par la sous-classe est également le type de données de base correspondant
a Exemple de code
Classe People
public class Peple { private String name; private String sex; private int age; private int weight; public Peple() { } public Peple(String name, String sex, int age, int weight) { this.name = name; this.sex = sex; this.age = age; this.weight=weight; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getWeight() { return weight; } public void setWeight(int weight) { this.weight = weight; } public double add(int a,int b){ return a+b; } }
Classe chinoise
public class Chinese extends Peple{ public Chinese(){ } @Override public double add(int a,int b) { return a+b+1; } }
Test03 class
public class Test03 { public static void main(String[] args) { Chinese c=new Chinese(); System.out.println("求和之和再加上1的结果为: "+c.add(2, 3)); } }
b Exemple de code Capture d'écran en cours d'exécution
3.2.3 Lorsque le type de valeur de retour de la méthode de classe parent est nul, le type de valeur de retour de la méthode remplacée par la sous-classe est également void
a Exemple de code
Classe People
public class Peple { private String name; private String sex; private int age; private int weight; public Peple() { } public Peple(String name, String sex, int age, int weight) { this.name = name; this.sex = sex; this.age = age; this.weight=weight; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getWeight() { return weight; } public void setWeight(int weight) { this.weight = weight; } public void eat(){ System.out.println("人的主食一般是熟食"); } }
Classe chinoise
public class Chinese extends Peple{ public Chinese(){ } @Override public void eat() { System.out.println("中国人的主食是大米或者小麦"); } }
Classe Test03
public class Test03 { public static void main(String[] args) { Chinese c=new Chinese(); c.eat(); } }
b Exemple de code exécutant une capture d'écran
3.2.4 Lorsque la méthode de la classe parent est modifiée par statique, la sous-classe ne peut pas remplacer la méthode
a Exemple de code d'erreur
Classe People
public class Peple { private String name; private String sex; private int age; private int weight; public Peple() { } public Peple(String name, String sex, int age, int weight) { this.name = name; this.sex = sex; this.age = age; this.weight=weight; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getWeight() { return weight; } public void setWeight(int weight) { this.weight = weight; } public static void eat(){ System.out.println("人的主食一般是熟食"); } }
Classe chinoise
public class Chinese extends Peple{ public Chinese(){ } @Override public void eat() { System.out.println("中国人的主食是大米或者小麦"); } }
Classe Test03
public class Test03 { public static void main(String[] args) { Chinese c=new Chinese(); c.eat(); } }
b Exemple de code en cours d'exécution capture d'écran
Le message d'erreur donné par idea lors de la compilation
Le message d'erreur donné après l'exécution forcée
3.3 Méthode Re- Quelques conseils pour l'écritureÉtapes
1 Copiez d'abord directement (Ctrl+C) la méthode dans la classe parent qui doit être remplacée par la sous-classe
. 2. Collez (Ctrl+V) dans la sous-classe
3. Modifiez les fonctions de la sous-classe pour faciliter la réalisation des exigences qui ne peuvent pas être satisfaites par la classe parent
Captures d'écran d'opération montrant
3.3. .2 Méthode d'invite du compilateur
Étapes
1. Tout d'abord, dans le corps de la sous-classe, écrivez un symbole @ anglais dans une position non-méthode
2. Sélectionnez Remplacer/implémenter les méthodes dans l'invite...
3. cliquez et une fenêtre contextuelle de liste de sélection de méthode de remplacement apparaîtra
4. Sélectionnez la méthode correspondante qui doit être réécrite en fonction des invites
5. Après avoir cliqué sur le bouton OK, une méthode de remplacement de la méthode que vous avez sélectionnée apparaîtra. être généré dans la sous-classe
6. Supprimez la première ligne générée automatiquement dans la méthode de substitution générée, puis écrivez les instructions appropriées dans le corps de la méthode en fonction des exigences
Les captures d'écran de l'opération montrent
3.3.3 Méthode des touches de raccourci
Étapes
1. Déplacez la souris vers la méthode réécrite devrait La position générée
2. Appuyez simultanément sur la touche Alt et la touche Inser du clavier,
.3. Dans la boîte contextuelle, sélectionnez Remplacer les méthodes
4. Après avoir double-cliqué, une interface apparaîtra dans l'interface, sélectionnez la méthode qui doit être remplacée par la sous-classe
5. Bouton OK, la méthode de remplacement requise sera générée
6. Supprimez la première ligne générée automatiquement dans la méthode remplacée, puis écrivez l'instruction appropriée dans le corps de la méthode
Capture d'écran de l'opération montrant
Apprentissage recommandé : "Tutoriel vidéo Java》
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!