在java中只有一个类不存在继承关系:Object类。只要定义了一个类,就是继承自Object类。
Object类继承所有子类对象:
class Person(){}class Demo{public static void main(string args[]){Object obj = new Person();if(obj instanceof Person){Person per = (Person) obj;}}}
使用Object类接收数组:
class Demo{public static void main(string args[]){Object obj = new int[](1,2,3);if(obj instanceof int[]){int data[] = (int []) obj;for(int tmp:data){System.out.println(tmp);}}}}
获取对象信息:toString()
对对象调用的输出方法就是toString()方法,所以这个方法调用与不调用效果相同。所以在以后的开发之中对象信息的获得可以直接覆写此方法。
覆写toString()方法
class Person(){private String name;private int age;public Person(String name,int age){this.name = name;this.age = age;}@Overridepublic String toString(){return name + " " + age;}}class Demo{public static void main(string args[]){Person per = new Person("111",11);System.out.println(per);//调用覆写,输出 111 11}}
对象比较
两个对象一定位于不同的地址,所以==一定false。
如果想使用equals比较,默认情况下只是对两个对象进行地址判断,也会是false,所以要在子类中覆写此方法。
Object中equals覆写
class Person{private String name;private int age;public Person(String name,int age){this.name = name;this.age = age;}@Overridepublic String toString(){return name + " " + age;}public boolean equals(Object obj){if(!(obj instanceof Person)){return false;}//obj为非Personif(obj == null){return false;}//obj为nullif(this == obj){ return true;}//obj为自己Person per = (Person) obj;return this.name.equals(per.name) && this.age == age;}}class Untitled {public static void main(String[] args) {Person perA = new Person("111",11);Person perB = new Person("111",11);System.out.println(perA.equals(perB));}}
