java - Class类的构造方法

 额外的房间 发布于 2022-10-28 17:40

我们知道子类不能够继承父类的构造方法,因为在初始化的时候,默认的首先会执行父类的构造方法,因此子类继承不继承父类的构造方法,父类的构造方法都要被执行的。
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();

3 个回答
  • 我建议你先把这些问题放放,往后看,看完javase全部内容在回过头来想想你的问题就会明白了 你的问题在javase后面都有解释

    2022-11-12 01:44 回答
  • 1、Class应该是类加载器加载进来的,这涉及native语言。
    2、 Object有构造方法啊,我看的源代码里面就有构造方法,即使没有构造方法,也会默认无参的构造方法啊

    2022-11-12 01:44 回答
  • 首先你要了解,这两块属于Java的底层结构,在底层结构中,很多是不遵循Java本身的语法的。
    Object的构造方法即使写出来也是空的,所以干脆就没有,这样连方法都不用执行。
    Class构造方法是private的,是不让开发者自己构造Class对象,而在jre运行环境里,是从底层构造的Class对象,根本不在于如何修饰它。

    2022-11-12 01:44 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有