在java中只有一个类不存在继承关系:Object类。只要定义了一个类,就是继承自Object类。
Object类继承所有子类对象:

  1. class Person(){}
  2. class Demo{
  3. public static void main(string args[]){
  4. Object obj = new Person();
  5. if(obj instanceof Person){
  6. Person per = (Person) obj;
  7. }
  8. }
  9. }

使用Object类接收数组:

  1. class Demo{
  2. public static void main(string args[]){
  3. Object obj = new int[](1,2,3);
  4. if(obj instanceof int[]){
  5. int data[] = (int []) obj;
  6. for(int tmp:data){
  7. System.out.println(tmp);
  8. }
  9. }
  10. }
  11. }

获取对象信息:toString()

对对象调用的输出方法就是toString()方法,所以这个方法调用与不调用效果相同。所以在以后的开发之中对象信息的获得可以直接覆写此方法。
覆写toString()方法

  1. class Person(){
  2. private String name;
  3. private int age;
  4. public Person(String name,int age){
  5. this.name = name;this.age = age;
  6. }
  7. @Override
  8. public String toString(){
  9. return name + " " + age;
  10. }
  11. }
  12. class Demo{
  13. public static void main(string args[]){
  14. Person per = new Person("111",11);
  15. System.out.println(per);//调用覆写,输出 111 11
  16. }
  17. }

对象比较

两个对象一定位于不同的地址,所以==一定false。
如果想使用equals比较,默认情况下只是对两个对象进行地址判断,也会是false,所以要在子类中覆写此方法。
Object中equals覆写

  1. class Person{
  2. private String name;
  3. private int age;
  4. public Person(String name,int age){
  5. this.name = name;this.age = age;
  6. }
  7. @Override
  8. public String toString(){
  9. return name + " " + age;
  10. }
  11. public boolean equals(Object obj){
  12. if(!(obj instanceof Person)){return false;}//obj为非Person
  13. if(obj == null){return false;}//obj为null
  14. if(this == obj){ return true;}//obj为自己
  15. Person per = (Person) obj;
  16. return this.name.equals(per.name) && this.age == age;
  17. }
  18. }
  19. class Untitled {
  20. public static void main(String[] args) {
  21. Person perA = new Person("111",11);
  22. Person perB = new Person("111",11);
  23. System.out.println(perA.equals(perB));
  24. }
  25. }