Vys*_*rem 2 java android abstract-class
我知道抽象类无法实例化.但我对下面的代码有疑问.此代码是android位图趣味演示的一部分(http://commondatastorage.googleapis.com/androiddevelopers/shareables/training/BitmapFun.zip).
// ImageWorkerAdapter class is nested in another abstract class ImageWorker
public static abstract class ImageWorkerAdapter
{
public abstract Object getItem(int num);
public abstract int getSize();
}
//this snippet is seen in Images.java
public final static ImageWorkerAdapter imageWorkerUrlsAdapter = new ImageWorkerAdapter() {
@Override
public Object getItem(int num) {
return Images.imageUrls[num];
}
Run Code Online (Sandbox Code Playgroud)
我无法理解如何创建抽象类的实例.请帮我理解这段代码.
此代码表示扩展ImageWorkerAdapter抽象类的匿名类的初始化:
new ImageWorkerAdapter() {
@Override
public Object getItem(int num) {
return Images.imageUrls[num];
}
Run Code Online (Sandbox Code Playgroud)
实际上,匿名实现是在花括号之间定义的.
作为一个匿名类,依赖于抽象类或接口是完全有效的.