public void test(Object obj){}
Object类是java中所有类的基类,也就是说Object引用数据类型变量obj可以指向任何一个类对象;
class Panda{
//构造方法
public Panda() {}
public Panda(String name){}
//成员变量
private String name;
//成员方法
public void test(){}
//重写equals() 方法
//这里的equals()方法 参数是 Object o
// o 里面保存的是Object对象还是Panda对象??? ———— Panda对象!
// o 对外是什么类型 ??? ————Object类型
// Object类型不能直接操作Panda的成员变量;
// 【父类的引用不能直接操作子类的特有成员变量】只能操作父类中存在的;
// 所以这里需要强转;强转后的 panda 就是Panda类型了,就可以使用Panda类型了;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
//强转!!!
Panda panda = (Panda) o;
return name.equals(panda.name);
}
//重写hashCode方法
@Override
public int hashCode() {
return Objects.hash(name);
}
}
public class Test{
//构造方法
public Test(){}
public static void main(String[] args) {
Panda p1 = new Panda("小哈");
Panda p2 = new Panda("小哈");
p1.equals(p2);
}
}