【问题标题】:What does super() method do?super() 方法有什么作用?
【发布时间】:2011-09-01 09:18:37
【问题描述】:

super方法有什么作用?

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

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

【问题讨论】:

  • 注意这不是一个“方法”,它是一种在基类中引用构造函数的方式。

标签: java class constructor super


【解决方案1】:

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

【讨论】:

  • 这是否意味着在这种情况下新对象的上下文是超类的上下文?
  • 不,超类没有直接引用您的类中定义的任何变量。您必须调用具有 Context 参数的构造函数。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

        我的回答可能通俗易懂!!!
        例子:看语法:

        public class A extends B{  
            //Coding      
        }  
        public A(){  
            super();  
        }
        

        -->这里super()方法请求先初始化父类(即B),再初始化子类(即A)的构造函数。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-02-13
          • 1970-01-01
          • 2015-09-29
          • 1970-01-01
          • 1970-01-01
          • 2018-11-13
          • 2019-04-26
          • 1970-01-01
          相关资源
          最近更新 更多