iteye_18568 2010-01-07 23:21
浏览 211
已采纳

初学,问了类的继承问题

下面是eclipse自动生成的代码

[code="java"]
public class Test extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
[/code]

Test类是继承Activity,main方法中的两个方法onCreate和setContentView都是继承的Activity中的方法,为什么一个要用super而另一个不用呢?都是执行父类里的方法吗?

  • 写回答

4条回答 默认 最新

  • ccnunlp 2010-01-08 07:31
    关注

    super.onCreate(savedInstanceState); 是一定会调用父类的onCreate方法的。

    setContentView(R.layout.main); 如果子类也有一个与父类相同的setContentView方法,则执行子类的方法。如果子类没有这个方法,就执行父类setContentView的。

    为什么上面一个要加super呢?

    因为子类有一个与父类完全一样的onCreate方法,根据Java方法调用的动态绑定机制,不加super就一定会调用子类自己的onCreate方法。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?