Maison > Java > javaDidacticiel > Comment remplacer une méthode en Java ?

Comment remplacer une méthode en Java ?

coldplay.xixi
Libérer: 2020-06-24 15:10:46
original
5986 Les gens l'ont consulté

remplacement de la méthode : 1. Méthode [toString()], renvoie un objet sous la forme d'une chaîne ; 2. Méthode [equals()], compare si les références de deux objets sont égales, code C'est [sq s2=new sq(5,4);println(s1.equals(s2)].

Comment remplacer une méthode en Java ?

Méthode réécrite en java Méthode :

La réécriture de méthodes en Java repose sur l'une des trois caractéristiques majeures des classes Java : l'héritage. Sans héritage, on ne peut pas parler de réécriture de méthode. la classe parent du programme ne peut pas répondre aux besoins de la sous-classe, la sous-classe peut redéfinir le contenu et la fonction de la méthode pour répondre aux besoins de la sous-classe. Comment l'implémenter spécifiquement via le code ? .

(1) Définir une classe de polygone

class Polygon{
//属性
private int number_side;
//构造器
public Polygon(int number_side) {
super();
this.number_side = number_side;
}
//方法
public int getNumber_side() {
return number_side;
}
public void setNumber_side(int number_side) {
this.number_side = number_side;
}
public void show(){
System.out.println("Number_side is " + this.number_side);
}
}
Copier après la connexion

En plus des méthodes get et set, cette classe existe également une méthode show qui peut afficher le nombre de côtés du polygone. 🎜>

(2) Définir une classe carrée héritée de la classe polygone

class square extends Polygon{
//属性
private double length; 
//构造器
public square(double length, int number_side) {
super(number_side);
this.length = length;
}
//方法
public double getLength() {
return length;
}
public void setLength(double length) {
this.length = length;
}
//输出边数和边长
public void show(){
System.out.println("This is a square");
super.show();
System.out.println("Length is " + this.length);
}
}
Copier après la connexion

Vous pouvez voir qu'il y a toujours un show dans la méthode square de la sous-classe, mais la fonction et l'instruction de la méthode sont tout à fait. différent de la méthode show dans sa classe parent, car dans la sous-classe square, la fonction de la méthode show de la sous-classe square doit non seulement pouvoir afficher le nombre de côtés opposés, mais également la longueur des côtés opposés. donc la méthode show de la classe parent ne peut pas répondre aux besoins de la sous-classe pour le moment. Le développeur doit réécrire une méthode show pour répondre aux besoins de la sous-classe. Il y en a beaucoup dans le processus de développement actuel. d'autres situations dans lesquelles la réécriture de méthodes est appliquée. Ensuite, cet article répertorie plusieurs réécritures de méthodes plus couramment utilisées

  Sous le package java.lang de java, il existe une classe nommée Object. class est la classe parent de toutes les classes. Lorsque nous créons une classe, si nous ne la déclarons pas comme héritant de la classe que nous avons créée, elle héritera de Object. Cependant, le mot-clé extends Object est omis en Java. méthodes fréquemment utilisées dans la classe Object : 1. méthode toString() ; 2. méthode equals() Ces deux méthodes sont souvent répétées dans les classes créées par les développeurs Write. La méthode toString()

consiste à renvoyer un objet sous la forme d'une chaîne. Par exemple :

Polygon p = new Polygon(3);
System.out.println(p.toString());
Copier après la connexion
La méthode appelée ici est la <🎜. > dans la classe Object. Le résultat est :

toString()

On peut voir que lorsque la méthode toString() dans la classe Object est appelée, un objet sous la forme. d'une chaîne est renvoyée, qui est l'adresse de l'objet. toString()

Dans les applications réelles, la méthode

est généralement remplacée pour fournir un mode de sortie de chaîne spécifique pour l'objet, par exemple : Comment remplacer une méthode en Java ?

public class Test {
public static void main(String[] args) {
Polygon p = new Polygon(3);
System.out.println(p.toString());
}
}
class Polygon{
//属性
private int number_side;
//构造器
public Polygon(int number_side) {
super();
this.number_side = number_side;
}
//..................................此处省略其他无关的方法
@Override
public String toString() {
return "Polygon [number_side=" + number_side + "]";
Copier après la connexion

remplace

dans la classe de polygone Méthode Polygone, dans la méthode principale, nous créons un objet Polygon p et l'instancions, en appelant la méthode

remplacée dans Polygon.

Comment remplacer une méthode en Java ?

toString()À ce stade, le système affiche le nom de la classe Polygon et ses attributs sous forme de chaîne.

toString()

toString()2. La méthode equals() toString()

Comment remplacer une méthode en Java ?Quelle est l'incarnation spécifique de la méthode equals() dans le Classe d'objet ? Quelle est sa fonction ? L'ancienne règle est d'aller directement au code.

public boolean equals(Object obj) {
        return (this == obj);
    }
Copier après la connexion

Il s'agit de l'implémentation spécifique de la méthode

de la classe Object dans le code source, on sait donc que la fonction de la méthode

dans Object est de comparer si les références de deux objets sont égaux. Quand on appelle la méthode Comment remplacer une méthode en Java ? dans la classe Object :

public class Test {
public static void main(String[] args) {
square s1 = new square(5.2,4);
square s2 = new square(5.2,4);
System.out.println(s1.equals(s2));
}
}
Copier après la connexion
Copier après la connexion

La sortie du système est :

equals() Ensuite on réécrit le

dans la classe carrée >Méthode

public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
square other = (square) obj;
if (Double.doubleToLongBits(length) != Double
.doubleToLongBits(other.length))
return false;
return true;
}
Copier après la connexion
equals()Lorsque la méthode equals() de la classe carrée est à nouveau appeléeequals()
public class Test {
public static void main(String[] args) {
square s1 = new square(5.2,4);
square s2 = new square(5.2,4);
System.out.println(s1.equals(s2));
}
}
Copier après la connexion
Copier après la connexion
la sortie du système est :

Comment remplacer une méthode en Java ?

par rapport à avant fasle, la sortie true à ce moment est due au fait que la méthode

a été réécrite et que la méthode equals() réécrite compare le contenu réel des deux objets, c'est-à-dire les attributs du deux objets (remarque : la méthode equals() ne permet pas de comparer deux objets (car cela n'a aucun sens), s'ils sont égaux, true sera affiché.

 Ce qui précède représente les connaissances de base sur la réécriture de méthodes et quelques points communs. Le blogueur l'a mentionné précédemment dans le chapitre sur le polymorphisme : la réécriture de méthodes est aussi une manifestation du polymorphisme. Nous pouvons maintenant savoir que les mêmes méthodes toString() et equals() sont utilisées dans les classes personnalisées. Après la réécriture, les fonctions sont complètement différentes de celles-là. dans la classe Object, ce sont également des manifestations différentes de la même chose, ce qui est conforme à la nature du polymorphisme.

Tutoriel 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal