如果你的自定义是包括通过继承,实现等拓展的手法,通过object形成新的class,那么当然是可以的,而且也必须是可以的。
Java中,Object可以看做所有类的父类,任何类都会默认继承Object类,这就可以看做是通过自定义Object类得到一个新的类了。
根据问题所述,可以发现题主是在问,为什么可以有两个同名的类,这其实是很正常的,因为类多了,难免会出现类的名字一样的问题,为了区分这些名字相同的class,java中定义了包的概念。
一个包内的class的名称必须唯一,如果class的访问符是public,那么class的名字将会必须和java文件名字相同,java的Object位于java.lang中,这个包是java的基础包,java会通过一个特别的方式进行加载,防止其他人篡改这些核心的类库。
因此,只要不在同一个包,新的类叫做Object是没有问题的,但是他不是java的那个Object,仅仅是一个普通的类,可以看做Object的子类。
至于说包是啥,看这个:
这些就是包,在你导入类的时候肯定见过
import javax.swing.*;
这样的语句,这里的javax.swing就是包,它用于划分类的存在范围和访问权限,像是public、protected、private这些在包的范围内也有所体现。
这个default package就是指默认包,这是由于没有特别指定类的package。
为了方便管理,通常包以文件夹的形式存在,当然,包并不是文件夹,没有文件夹包的划分依然有效,只不过作为文件夹更加符合大家的直觉,也便于处理。
包的定义语句就像是这样:
package java.lang;
一个带包声明的类就像是这样: