面向对象之Object-所有类的基类

Java中的Object类是所有类的基类,每个类都默认继承Object。本文讨论了Object类的基本概念以及其toString方法的工作原理。在输出对象时,系统默认调用toString方法,显示类名和哈希码。为了自定义输出内容,可以重写toString方法,如Student类示例所示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、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()方法,把默认的字符串内容改成我们自己想要表达的正常信息的字符串内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值