我的Abstract类如下:
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 ???
我知道静态方法可行,但我不能为这种情况制作静态方法。
非常感谢您的帮助
答案 0 :(得分:3)
没有。首先,您不要从类调用方法。您调用对象方法,因为对象是类的实例。抽象类无法实例化。
答案 1 :(得分:2)
为了调用非静态方法,您必须实例化该类。
根据定义,抽象类无法实例化。所以答案是否定的
如果仍需要访问该方法,则必须创建一个扩展抽象类的类,并实现该类中的所有方法。然后,您可以在程序中实例化扩展类并调用该方法。