/**
* Object类中equals方法和toString方法练习支标准写法
*/
public class Teat11 {
public static void main(String[] args) {
Person p1 = new Person(23, "lisi");
Person p2 = new Person(23, "lisi");
System.out.println(p1.equals(p2));// 判断对象的内容
System.out.println(p1 == p2);// 判断对象的地址
System.out.println(p1);// 调用toString方法
System.out.println(p2);
}
}
class Person {
private int age;
private String name;
Person() {
}
Person(int age, String name) {
this.age = age;
this.name = name;
}
// 重写equals方法
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof Person)) {
return false;
} else {
Person p = (Person) obj;
return this.name.equals(p.name) && this.age == p.age;
}
}
// 重写toString方法
@Override
public String toString() {
return "Person[name=" + this.name + "\tage=" + this.age + "]";
}
}
重载和重写的区别:
1.方法重载(overload)
在一个类中,可以定义多个名称相同,参数列表不同的函数,叫做方法的重载(和返回值类型无关)。
2.方法的重写(override)
在继承中,子类可以定义和父类一样的方法,在子类对象中使用的是子类中定义的方法,这叫做方法的重写。