01.Object要点
- 01.是java里面最大的类,可以认为是一切类的父类
- 02.它不断向上抽取出了所有类都共有的一些特点
- 03.有些方法需要覆盖,但它其实有默认的实现方法
02.覆写equals方法
class Person extends Object
{
private int age;
Person (int age)
{
this.age = age;
}
public boolean equals (Object obj)//多态方式可以输入任意一个对象和本对象比较特定内容是否相同//但会隐藏子类的一些特用方法和属性,这里其实是为了覆盖Object类中方法
{
if(!(obj instanceof Person))
{
return false;//也可以用异常方式
throw new ClassCastException("类型错误");
}
Person p = (Person) obj;//向上转型
return this.age==p.age;
}
}
class Animal
{
}
class ObjectTest
{
public static void main (String [ ] args)
{
Person p1 = new Person (20);
Person p2 = new Person (20);
Animal p3 =new Animal();
System.out.println(p1==p2);
System.out.println(p1.equals(p2));
System.out.println(p1.equals(p3));
}
}
本例子结果为:
- false
- true
- Exception in thread "main" java.lang.ClassCastException: 类型错误
- at Person.equals(ObjectTest.java:14)
- at ObjectTest.main(ObjectTest.java:32)