1.先大概介绍一下Object类:
- Object类是JDK默认提供的一个类,所有类默认继承Object类。
- Object类是所有类的父类,使用Object可以接受所有类的对象。
- 那么如何体现(证明),Object类是所有类的父类呢?
如果可以发生向上转型,则可以说明Object类是所有类的子类:
//默认继承(并没有写extends Object )
class Person{}
class Student{}
public class Test1 {
public static void main(String[] args) {
//将一个Person类的对象给Object(向上转型)
//即:Object obj = new Person();
fun(new Person());
fun(new Student());
}
public static void fun(Object obj){
System.out.println(obj);
}
}
此处系统输出(pringt/println)输出对象时,默认调用对象的toString()方法。
2.取得对象信息toString();
使用系统输出输出对象时,默认输出的是一个地址编码。
而使用系统输出输出String常量时,输出的是字符串内容。
本质原因在于Object类提供的toString()有没有被类所覆写。
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.age = age;
this.name = name;
}
}
public class Test1 {
public static void main(String[] args) {
fun(new Person("fwb",20) );
fun("Hello");
}
public static void fun(Object obj) {
System.out.println(obj.toString()); // 默认输出对象调用的就是toString()方法}}
}
}
覆写toString()方法:
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.age = age;
this.name = name;
}
public String toString() {
return "姓名为:" + this.name + "年龄为:" + this.age;
}
}
public class Test1 {
public static void main(String[] args) {
fun(new Person("fwb",20) );
fun("Hello");
}
public static void fun(Object obj) {
System.out.println(obj.toString()); // 默认输出对象调用的就是toString()方法}}
}
}