如何声明一个 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 中,您可以使用 interface
或 abstract class
。
通过提供一个适当的示例,您会发现方法 void onActivityCreated(@NonNull Activity activity, @Nullable Bundle savedInstanceState);
不是 class android.app.Application
.
的方法
其实是interface ActivityLifecycleCallbacks
的一个方法,定义在classandroid.app.Application
里面,是一个内部接口。
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);
...
}
...
}
我知道在 Java 中是不可能的。但是在 Android 我看到很多库 类 有很多方法只有签名没有主体(缺少实现)。 例如:Applicatin.java -> 方法:void onActivityCreated(@NonNull Activity activity, @Nullable Bundle savedInstanceState);
您可以为此目的使用接口,可以在实现时提供实现,也可以使用抽象 class
在 java 中,您可以使用 interface
或 abstract class
。
通过提供一个适当的示例,您会发现方法 void onActivityCreated(@NonNull Activity activity, @Nullable Bundle savedInstanceState);
不是 class android.app.Application
.
其实是interface ActivityLifecycleCallbacks
的一个方法,定义在classandroid.app.Application
里面,是一个内部接口。
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);
...
}
...
}