java.lang.Object是如何成为默认父类的
{
public static void main(String[] args)
{
System.out.println(new Test().toString());
}
}
打开Test.txt文件后,会看到如下的代码:
public Test();
public static void main(java.lang.String[]);
}
打开Test1.txt后,会看到如下的代码:
public Test();
Code:
0: aload_0
1: invokespecial #8; //Method java/lang/Object."<init>":()V
4: return
public static void main(java.lang.String[]);
Code:
0: getstatic #16; //Field java/lang/System.out:Ljava/io/PrintStream;
3: new #1; //class Test
6: dup
7: invokespecial #22; //Method "<init>":()V
10: invokevirtual #23; //Method java/lang/Object.toString:()Ljava/lang/String;
13: invokevirtual #27; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
16: return
}
从上面两段代码可以看出,Test已经从Object继承了,因此,可以断定Java是属性第1种情况,也就是说由编译器为没有父类的类指定了Object作为其默认父类。如果读者还不确定,可以直接打开Test.class,看看里面有没有Object,图1是Test.class的十六进制代码:
图1
大家可以看到,Java编译器已经为Test指定了一个默认的Object类作为其父类。目前大多数基于虚拟器的语言都是采用的第1种方法来处理默认父类的,如下面的C#代码:
namespace ConsoleApplication1
{
class Test
{
static void Main(string[] args)
{
Console.WriteLine(new Test().ToString());
}
}
}
使用ildasm.exe将上面的代码反编译后,得到的MSIL代码如下:
extends [mscorlib]System.Object
{
} // end of class ConsoleApplication1.Test
从上面的代码可以清楚地看到,Test类已经有一个System.Object作为父类了。
java.lang.Object是如何成为默认父类的相关推荐
- java.lang.object 下载_java.lang.Object
java.lang.Object 类Object是类层次结构的根类.每个类都使用Object作为超类. 所有对象(包括数组)都实现这个类的方法. Object是根父类,如何理解? (一)从继承 (1) ...
- ArrayMap java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Object[]
错误堆栈: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Object[]at android. ...
- The type java.lang.Object cannot be resolved
java常见异常 @(JAVA)[java] 1.The type java.lang.Object cannot be resolved The type java.lang.Object cann ...
- 【典型错误】The type java.lang.Object cannot be resolved.
参考:http://blog.csdn.net/wo519074786/article/details/7697967 The type java.lang.Object cannot be reso ...
- eclipse java转class_Eclipse中的Java项目:无法解析java.lang.Object类型。 它是从所需的.class文件间接引用的...
Eclipse中的Java项目:无法解析java.lang.Object类型. 它是从所需的.class文件间接引用的 在Eclipse中导入项目后,我收到以下错误: 无法解析java.lang.Ob ...
- 【Java】java.lang.Object
文章目录 java.lang.Object核心要点 java.lang.Object重要方法 java.lang.Object核心要点 Object类是所有类的基类,是Java中唯一一个没有基类的类. ...
- InvalidDefinitionException: No serializer found for class java.lang.Object and no properties discove
使用springcloudgateway 搭建项目后,写个test验证返回响应,响应结果报如下错误: {"timestamp": "2022-04-08T14:21:45 ...
- java项目导入jre不识别_Eclipse中的Java项目:无法解析类型java.lang.Object。 从所需的.class文件间接引用它...
在Eclipse中导入项目后出现以下错误: The type java.lang.Object cannot be resolved. It is indirectly referenced from ...
- The type java.lang.Object cannot be resolved It is indirectly referenced ... .
The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files ...
最新文章
- linux企业常用命令必之必会二
- 一个App完成入门篇(一)-从Hello world开始
- [转] Java多线程发展简史
- Webstorm 10.0.4 配置
- 分数化小数 Fractions to Decimals
- JavaSE 基础面试题
- python 生成排列、组合以及选择
- PCB-电解电容的封装
- gt爵士变形步骤_代码广播简介:您可以编码为24/7的爵士节拍
- 客户端(前端)Ajax中Get请求和Post请求的区别
- bzoj 3385: [Usaco2004 Nov]Lake Counting 数池塘(DFS)
- [死亡笔记]某傻逼的错误实况
- 《模式识别与机器学习》 简称 PRML 开源了
- 中小企业选择仓库管理软件免费版的七大特点
- 怎么把外部参照合并到图纸_CAD外部参照如何绑定?
- 朴素贝叶斯——新闻分类
- 简单好听的id_简单好听的微信id(精选500个)_见过的最好看的微信id_简单好记好看的微信号 - 第5页...
- 常用正则表达式大全 (转)
- Es6类数组length属性和扩展方法,find(),findIndex(),fill(),copyWithin(),entries()...用法
- 01前端入门HTML5 +Css3+电商网页制作:HTML5