我们知道子类不能够继承父类的构造方法,因为在初始化的时候,默认的首先会执行父类的构造方法,因此子类继承不继承父类的构造方法,父类的构造方法都要被执行的。
1.由于Object是所有类的父类,那么Object的构造方法呢?
查看源代码,发现Object是没有构造方法的,只有如下几个方法:clone()/equals()/finalize()/getclass()/hascode()/notify()/notifyall()/tostring()/wait()/registerNatives()
2.由于构造方法是允许被private修饰的,所以我们看Class的源码会发现Class类的构造方法如下:
private Class(ClassLoader loader) {
// Initialize final field for classLoader. The initialization value of non-null
// prevents future JIT optimizations from assuming this final field is null.
classLoader = loader;
}
我们知道构造方法被修饰成private的。
问题:
1.class的构造方法是如何被使用的。
2.为什么Object没有构造方法,我们却可以Object o = new Object();
首先你要了解,这两块属于Java的底层结构,在底层结构中,很多是不遵循Java本身的语法的。
Object
的构造方法即使写出来也是空的,所以干脆就没有,这样连方法都不用执行。Class
构造方法是private
的,是不让开发者自己构造Class
对象,而在jre
运行环境里,是从底层构造的Class
对象,根本不在于如何修饰它。