是否可以从抽象 class 调用方法?

Is it possible to invoke a method from abstract class?

我的摘要 class 如下:

AbstractFilePickerFragment.java

public abstract class AbstractFilePickerFragment<T> extends ListFragment
        implements LoaderManager.LoaderCallbacks<List<T>>

....

....

public void GoBackToPreviousDirectory() {
    currentPath = getParent(currentPath);
    refresh();
  }
}

OtherActivity.java

private AbstractFilePickerFragment<T> mAbstractFilePickerFragment;

@Override
protected void onCreate(Bundle savedInstanceState) {
    requestWindowFeature(Window.FEATURE_ACTION_BAR);
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_layout);

   //THIS LINE SAYS "Cannot instantiate the type AbstractFilePickerFragment"
    mAbstractFilePickerFragment = new AbstractFilePickerFragment();
}

    public void GoBackToPreviousDir_onClick(MenuItem item) {
        mAbstractFilePickerFragment.GoBackToPreviousDirectory();
    }
}

是否有人可以从 AbstractFilePickerFragment 调用 GoBackToPreviousDirectory class???

我知道静态方法可以工作,但我不能为这种情况创建静态方法。

非常感谢您的帮助

没有。首先,您不调用 classes 中的方法。您调用 object 方法,因为对象是 class 的 instance。摘要class无法实例化。

为了调用非静态方法,您必须实例化class。

根据定义,抽象 classes 无法实例化。所以答案是否定的

如果您仍然需要访问该方法,您将必须创建一个扩展抽象 class 的 class 并实现 class 中的所有方法。然后你可以在你的程序中实例化扩展的 class 并调用该方法。