gpt4 book ai didi

java - 具有抽象基类的 Android Activity 引发编译错误 "is not abstract and does not overrid abstract method..."

转载 作者:搜寻专家 更新时间:2023-11-01 07:40:27 29 4
gpt4 key购买 nike

我有一个扩展 ListActivity 的基类,我想用它来实现许多用于多个不同 Activity 实现的通用代码。

我想将这个基类抽象化以强制在子类上实现方法。

如果我编写该方法的基本实现,并在子类中覆盖它,一切正常。

如果我将方法抽象化,我会得到以下编译错误:

XXXX.subapps.athletics.AthleticsNewsActivity is not abstract and does not override abstract method getListItems() in XXXX.subapps.BaseCategoryListActivity

基类:

public abstract class BaseCategoryListActivity extends ListActivity
{
....
abstract ArrayList<String> getListItems();
....
}

示例子类:

public class AthleticsNewsActivity extends BaseCategoryListActivity
{
....
public ArrayList<String> getListItems()
{
...implementation details....
}
}

最佳答案

如果你扩展一个抽象类,你需要在扩展类中使方法抽象或者你需要提供实现:

public abstract class BaseCategoryListActivity extends ListActivity
{
....
public abstract ArrayList<String> getListItems();
....
}

public class AthleticsNewsActivity extends BaseCategoryListActivity
{
....
public ArrayList<String> getListItems()
{
...implementation details....
}
}

这应该可以,注意 public modifier
的变化重写的方法不能有更广泛的可见性说明符

另见

关于java - 具有抽象基类的 Android Activity 引发编译错误 "is not abstract and does not overrid abstract method...",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4608557/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com