Java 何时调用继承方法的super关键字

Java 何时调用继承方法的super关键字,java,android,super,Java,Android,Super,我应该在什么时候打电话,例如,super.onResume?有时它在onResume正文的最后一行,有时在第一行。有什么不同吗?我假设您指的是Android的活动生命周期方法onResume(基于Android标签)。在这种情况下,您应该首先在方法的第一行调用它 这确保活动已正确初始化/恢复/停止(取决于覆盖的生命周期方法) 此示例来自: 我假设您指的是Android的活动生命周期方法onResume(基于Android标签)。在这种情况下,您应该首先在方法的第一行调用它 这确保活动已正确初始化

我应该在什么时候打电话,例如,
super.onResume
?有时它在
onResume
正文的最后一行,有时在第一行。有什么不同吗?

我假设您指的是Android的
活动
生命周期方法
onResume
(基于Android标签)。在这种情况下,您应该首先在方法的第一行调用它

这确保活动已正确初始化/恢复/停止(取决于覆盖的生命周期方法)

此示例来自:


我假设您指的是Android的
活动
生命周期方法
onResume
(基于Android标签)。在这种情况下,您应该首先在方法的第一行调用它

这确保活动已正确初始化/恢复/停止(取决于覆盖的生命周期方法)

此示例来自:


我假设您指的是Android的
活动
生命周期方法
onResume
(基于Android标签)。在这种情况下,您应该首先在方法的第一行调用它

这确保活动已正确初始化/恢复/停止(取决于覆盖的生命周期方法)

此示例来自:


我假设您指的是Android的
活动
生命周期方法
onResume
(基于Android标签)。在这种情况下,您应该首先在方法的第一行调用它

这确保活动已正确初始化/恢复/停止(取决于覆盖的生命周期方法)

此示例来自:


这取决于许多因素。在某些情况下,您需要在调用super方法之前保存一些值。对于onResume(),最好在第一行调用它,但这取决于具体情况。在其他情况下,您甚至可能不会基于某些计算或布尔值调用super方法。例如,最常见的情况可能是super.onBackPressed();如果我不想让用户能够在应用程序流中向后导航,我就不会打电话。它也可以在onBackPressed()方法之外调用,以模拟后退按钮按下。所以是的,这取决于情况。希望这有帮助

这取决于许多因素。在某些情况下,您需要在调用super方法之前保存一些值。对于onResume(),最好在第一行调用它,但这取决于具体情况。在其他情况下,您甚至可能不会基于某些计算或布尔值调用super方法。例如,最常见的情况可能是super.onBackPressed();如果我不想让用户能够在应用程序流中向后导航,我就不会打电话。它也可以在onBackPressed()方法之外调用,以模拟后退按钮按下。所以是的,这取决于情况。希望这有帮助

这取决于许多因素。在某些情况下,您需要在调用super方法之前保存一些值。对于onResume(),最好在第一行调用它,但这取决于具体情况。在其他情况下,您甚至可能不会基于某些计算或布尔值调用super方法。例如,最常见的情况可能是super.onBackPressed();如果我不想让用户能够在应用程序流中向后导航,我就不会打电话。它也可以在onBackPressed()方法之外调用,以模拟后退按钮按下。所以是的,这取决于情况。希望这有帮助

这取决于许多因素。在某些情况下,您需要在调用super方法之前保存一些值。对于onResume(),最好在第一行调用它,但这取决于具体情况。在其他情况下,您甚至可能不会基于某些计算或布尔值调用super方法。例如,最常见的情况可能是super.onBackPressed();如果我不想让用户能够在应用程序流中向后导航,我就不会打电话。它也可以在onBackPressed()方法之外调用,以模拟后退按钮按下。所以是的,这取决于情况。希望这有帮助

这取决于用例

例如:如果主逻辑在超类中,并且它依赖于子类预期提供的一些参数。在这种情况下,您将首先设置这些参数,然后调用super。 在另一种情况下,您的父类可能正在设置一些基础设施,如设置一些db连接或为远程调用创建代理。您正在子类实现中使用它。在这种情况下,首先您将调用super方法作为代码的第一行


一个非常好的用例是调用超级构造函数作为子类中构造函数的第一行,以使超级类能够设置子类可能引用的所有基础结构。

这实际上取决于用例

例如:如果主逻辑在超类中,并且它依赖于子类预期提供的一些参数。在这种情况下,您将首先设置这些参数,然后调用super。 在另一种情况下,您的父类可能正在设置一些基础设施,如设置一些db连接或为远程调用创建代理。您正在子类实现中使用它。在这种情况下,首先您将调用super方法作为代码的第一行


一个非常好的用例是调用超级构造函数作为子类中构造函数的第一行,以使超级类能够设置子类可能引用的所有基础结构。

这实际上取决于用例

例如:如果主逻辑在超类中,它取决于
@Override
public void onResume() {
    super.onResume();  // Always call the superclass method first

    // Get the Camera instance as the activity achieves full user focus
    if (mCamera == null) {
        initializeCamera(); // Local method to handle camera init
    }
}