Compréhension par Java de la méthode d'égalité dans la classe Object

Sans plus tarder, le premier exemple

1  paquet Ch_11;
2  
3  public  class Test {
 4      public  static  void main (String [] args) {
 5          Object circle1 = new Circle ();
6          Objet circle2 = nouveau Circle ();
7          System.out.println (circle1.equals (circle2));
8      }
 9  }
 10  
11  classe Cercle {
 12      double rayon;
13      
14      booléens publics  égaux (cercle d'objet) {
 15 retour          ce .radius == ((cercle) cercle) .radius;
16      }
 17 }

Réponse: vrai

1  paquet Ch_11;
2  
3  public  class Test {
 4      public  static  void main (String [] args) {
 5          Object circle1 = new Circle ();
6          Objet circle2 = nouveau Circle ();
7          System.out.println (circle1.equals (circle2));
8      }
 9  }
 10  
11  classe Cercle {
 12      double rayon;
13  
14      public  boolean equals (Circle circle) {
 15          retour ce .radius == circle.radius;
16      }
 17 }

Réponse: faux

 

Voyez ici, les enfants, avez-vous beaucoup de bonjour? Bien sûr, ne paniquez pas, regardez mes messages suivants:

(Vous devez d'abord comprendre que la classe parente ne peut pas appeler directement les méthodes de la sous-classe! Bien sûr, la conversion de force brute forcée est mentionnée séparément)

Tout d'abord, vous regardez ce code, Object circle1 = new Circle (); Cela montre que circle1 est déclaré comme variable de référence de type Object, c'est donc la variable de classe parent de Circle, donc lorsque la septième ligne est appelée, l'égal de la classe Object est appelé! ! !

Donc, cercle1 et cercle2 sont bien sûr deux variables de type référence différentes, donc la valeur de retour est bien sûr fausse!

De plus, vous devez comprendre que l'égalité dans le premier code n'est qu'une surcharge de la méthode égale dans la classe d'objet parent! ! ! Pas de réécriture, mais le deuxième code est en train de réécrire! ! ! À ce stade, êtes-vous soudainement brillant?

 

 

Si vous ne comprenez toujours pas, bienvenue aux blogueurs privés ou laissez un message dans la zone de commentaire!

Je suppose que tu aimes

Origine www.cnblogs.com/mr-wei977955490/p/12683350.html
conseillé
Classement