【问题标题】:What is the actual base class of all Android classes?所有 Android 类的实际基类是什么?
【发布时间】:2019-11-23 03:13:32
【问题描述】:
在此之前,我读过文章和教程说所有 Android 组件的基类是 Application。但是当我深入研究继承时,我发现Application 类继承自ContextWrapper,它同样继承了Context 类。
有趣的是Activity 类也继承自ContetxtWrapper
为什么不把Context类称为所有android组件的基类?
【问题讨论】:
标签:
java
android
inheritance
android-activity
【解决方案1】:
Android 中的 Application 类是 Android 中的基类
包含所有其他组件的应用程序,例如活动和
服务。 Application 类,或 Application 的任何子类
类,在任何其他类之前实例化,当进程为
您的应用程序/包已创建。
该类主要用于初始化之前的全局状态
显示第一个活动。请注意,自定义应用程序对象
应该小心使用,而且通常根本不需要
Reference
Why isn't the Context class referred to as the base class of all
android components?
Android 中的 Application 类是 Android 中的基类
包含所有其他组件的应用程序,例如活动和
服务。
我认为上面的行将消除您的困惑,因为基类不仅意味着它实现/扩展的内容,它更多的是关于它包含的内容。
按照你的逻辑,如果你深入层次结构,最后所有的类,如 Application/Activity/ContextWrapper 都将扩展 [Object Class][2]
所以 Object Class 应该是 Android 中的基类。
但是,
正如文档所说的
类对象是类层次结构的根。每个班级都有
对象作为超类。所有对象,包括数组,都实现
这个类的方法。