所有Android类都扩展Activity吗?

时间:2016-07-12 00:58:49

标签: java android

我正在阅读一些Android开发教程,我注意到有些类扩展了Activity,而其他类扩展了ListActivity。

默认情况下,新创建的类是否隐式扩展Activity,还是需要显式扩展它?

此外,当一个类扩展ListActivity时,为什么不必扩展Activity?或者ListActivity是否已经扩展了Activity?

我读了几个类似的问题,但它并不是很清楚。

4 个答案:

答案 0 :(得分:2)

Android是用Java编写的,与所有java类一样,每个类都继承自Object类。

  

新创建的类是否隐式扩展了Activity,还是需要显式扩展它?

你需要扩展它。

  

ListActivity是否已经扩展了Activity?

您可以看到ListActivity here的类层次结构。

答案 1 :(得分:2)

按"默认",所有Android活动都会延长Activity

  

默认情况下,新创建的类是否隐式扩展Activity,还是需要显式扩展它?

如果尚未扩展Activity并且您打算将其用作活动,则必须明确声明它应该扩展ListActivity。请注意,有时候你不会这样做。例如,当你有一个对象或类似的类时,你就不需要再延长Activity了。

  

此外,当一个类扩展ListActivity时,为什么不必扩展Activity?或者ListActivity是否已经扩展了Activity?

AppCompatActivity-Activity以及以Activity结尾的任何其他类都是Activity类的儿童。所以通过扩展,延伸到这些儿童"已经从父YourActivity extends ListActivity, Activity课程延伸,您不再需要像Activity那样做。我认为如果你这样做,Android Studio会给你一个错误。

ListAcivityUser之间的区别在于ListActivity将要求您覆盖多个方法,因为它期望在其内容中使用ListView。

答案 2 :(得分:1)

新创建的类不会扩展任何内容。 ListActivity是Activity的子类,因此Activity具有的所有功能,ListActivity都继承。在ListActivity的documentation中,您可以看到它是Activity的子类。

答案 3 :(得分:1)

在Android中,所有类都不会被Activity扩展。

只有呈现UI的屏幕才会被Activity扩展。因此,如果要创建UI屏幕,则必须使用Activity类显式扩展它并覆盖回调方法。

ListActivity是Activity的子类,仅当你的布局中只有一个ListView时才使用它。它有一些特定的listview相关方法。

同样,如果你想创建一个片段,你的类将扩展Fragment Class并覆盖它的方法。类似于Service,BroadcastReceiver等。