java中可以自定义一个Object吗?

类加载器是通过包名+类名来辨认一个类的,你在描述中声明的类其实跟java.lang.Object一点关系都没有(除了是它的子类)。在main方法中你还可以使用全限定名创建一个java.lang.Object对象:

java.lang.Object realObject = new java.lang.Object();

如果你尝试重写java.lang.Object类,也可以通过编译。但是由于JVM中类加载器遵循双亲委派原则,jdk中自带的java.lang.Object类会由顶级类加载器BootstrapClassLoader加载。JVM的AppClassLoader 试图加载你实现的java.lang.Object类时会向父加载器询问这个类是不是已经被加载过了,得知这个类已经已经被父加载器加载过之后AppClassLoader就会放弃加载当前类。所以一般情况下无法在程序中使用这个类。

你可能感兴趣的:(java中可以自定义一个Object吗?)