All classes in java are subclasses of objects. The equals method is implemented in the Object, which must be overloaded in general.
When no overload is performed
Public class JavaTest {public static void main (String [] args) {boolean result; Student stu1 = new Student ("cjc", 24 ); student stu2 = new Student ("cjc", 24); result = stu1.equals (stu2); if (result) {System. out. println ("is the same person! ");} Else {System. out. println (" not the same person! ") ;}} Class Student extends Object {private String name; private int age; Student (String str, int num) {name = str; age = num ;}}
After reload
Public class JavaTest {public static void main (String [] args) {boolean result; Student stu1 = new Student ("cjc", 24 ); student stu2 = new Student ("cjc", 24); result = stu1.equals (stu2); if (result) {System. out. println ("is the same person! ");} Else {System. out. println (" not the same person! ") ;}} Class Student extends Object {private String name; private int age; Student (String str, int num) {name = str; age = num ;} public boolean equals (Object o) {boolean result = false; if (o instanceof Student) {Student stu = (Student) o; if (stu. name. equals (this. name) & this. age = stu. age) {result = true ;}} return result ;}}
It should be noted that the String class has been overloaded with equals, so stu. name. equals (this. name) in the program can be used in this way.