如何声明一个 class (不是抽象的)并且只写方法签名而没有任何实现

How is it possible to declare a class (not an abstract one) and only write methods signature without any implementation

我知道在 Java 中是不可能的。但是在 Android 我看到很多库 类 有很多方法只有签名没有主体(缺少实现)。 例如:Applicatin.java -> 方法:void onActivityCreated(@NonNull Activity activity, @Nullable Bundle savedInstanceState);

您可以为此目的使用接口,可以在实现时提供实现,也可以使用抽象 class

在 java 中,您可以使用 interfaceabstract class

通过提供一个适当的示例,您会发现方法 void onActivityCreated(@NonNull Activity activity, @Nullable Bundle savedInstanceState); 不是 class android.app.Application.

的方法

其实是interface ActivityLifecycleCallbacks的一个方法,定义在classandroid.app.Application里面,是一个内部接口。

来源:https://android.googlesource.com/platform/frameworks/base.git/+/master/core/java/android/app/Application.java

public class Application extends ContextWrapper implements ComponentCallbacks2 {
    ...
    public interface ActivityLifecycleCallbacks {
        /**
         * Called when the Activity calls {@link Activity#onCreate super.onCreate()}.
         */
        void onActivityCreated(@NonNull Activity activity, @Nullable Bundle savedInstanceState);

        ...
    }
    ...
}