一、Object类
我们一般所创建的类都是Object的子类,所有的类都是继承Object类的.
Object类在JAVA里面是一个比较特殊的类,JAVA只支持单继承,子类只能从一个父类来继承,如果父类又是从另外一个父类继承过来,那他也只能有一个父类,父类再有父类,那也只能有一个,JAVA为了组织这个类组织得比较方便,它提供了一个最根上的类,相当于所有的类都是从这个类继承,这个类就叫Object。所以Object类是所有JAVA类的根基类,是所有JAVA类的老祖宗。所有的类,不管是谁,都是从它继承下来的。
public class Student extends Object{
}
默认继承Object类,但是我们一般写的时候不用写extends Object,我们默认的是继承它。
二,toString方法
我们测试下来
public void test() {
Student s = new Student();
System.out.println(s);
}
运行结果:
为什么输出会是这样一串字符串呢?我们解析一下
当我们输出Student类的时候,它会自动调用Object类的toString方法,因为所有的类都是默认继承Object类,我们来看看Object的toString方法
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
toString 方法中,返回的是全类名 + @ +哈希编码的进制数
所以我们输出的student它就会自动调用这个方法,为了放我们更友好的输出自己想输出,可以重写toString方法。
package cn.edu.xatu;
public class Student extends Object {
private int id;
private String name;
private char sex;public Student(int id, String name, char sex) {
super();
this.id = id;
this.name = name;
this.sex = sex;
}public String toString() {
return "姓名: " + this.name + " 性别: " + this.sex + " 年龄: " + this.id;
}}
测试:同样的代码
public void test() {
Student s = new Student(21,"张三",'男');
System.out.println(s);
}
输出:
重写了toString方法,就可以按照我们自己想输出的格式输出
任何一个类都是从Object类继承下来的,因此在任何一个类里面都可以重写这个toString()方法。toString()方法的作用是当一个引用对象和字符串作连接的时候,或者是直接打印这个引用对象的时侯,这个引用对象都会自动调用toString()方法,通过这个方法返回一个表示引用对象自己正常信息的字符串,而这个字符串的内容由我们自己去定义,默认的字符串内容是“类名+哈希编码”。因此我们可以通过在类里面重写toString()方法,把默认的字符串内容改成我们自己想要表达的正常信息的字符串内容。