2011-05-25 76 views
18

超级方法有什么作用?super()方法做什么?

public DataFetch(Context context) { 
    super(); 
    this.ctx = context; 
} 

此构造函数是否使新创建的对象的上下文成为超类的上下文?不是100%确定这是如何工作的。那么super()方法本质上只是说“让我进入超级模式”,以非正式的方式说出来?

+1

注意它不是'方法',它是引用基类中构造函数的一种方法。 – EJP 2011-05-25 05:19:16

回答

32

它通过调用其默认构造函数说“在初始化我之前初始化我的父类”。

+0

这是否意味着在这种情况下,新对象的上下文是超类的上下文? – mergesort 2011-05-25 01:04:03

+1

不,超类没有直接引用任何在你的类中定义的变量。你将不得不调用具有Context参数的构造函数。 – dmon 2011-05-25 01:25:04

9

super()调用父类的构造函数(一直回到Object),它在当前类的构造函数之前运行。

2

没有“超类上下文”这样的事情,上下文是从应用程序环境中访问信息的接口,如图像资源,系统服务等。上下文将来自您传入的任何内容,并且是独立于课程的。例如,Activity是您可能正在使用的Context接口的实现,并且您在该活动中创建的任何视图都将具有实际上由该活动提供的相同的上下文。

0

在构造函数中使用时,关键字super()单独出现,必须先使用关键字this才能使用。然后可以使用this关键字来调用父对象上的函数。

相关问题