1

我想创建扩展 Activity 的自定义活动类,

但是添加了另一个继承者必须实现的抽象方法。

例子:

interface MyActivity extends Activity
{
    public void myAbstractMethod();
}

IDE 说:“Activity 类型不能是 MyActivity 的超接口;超接口必须是接口”

我怎么能做这样的事情?

谢谢你。

4

4 回答 4

6

听起来你需要MyActivity成为一个抽象类,而不是一个接口。接口不继承自类;它们只能从其他接口继承。

尝试

abstract class MyActivity extends Activity
{
    public abstract void myAbstractMethod();
}

一个具有所有抽象方法的抽象类表现得像一个接口,所以这听起来像是你需要的。

于 2013-04-01T17:25:20.480 回答
2

您可以使用抽象类而不是接口。

在http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html阅读更多内容

例如

abstract public class AbstractActivity extends Activity {
    public abstract void myAbstractMethod();
}

但是,这不允许您同时实现 AbstractActivity 和另一个超类,但听起来您不需要这个。

于 2013-04-01T17:25:23.160 回答
1

一个接口只能扩展其他接口,不能是一个具体的类。

于 2013-04-01T17:29:00.017 回答
0

看起来接口可以扩展一些类。例如,

java.util.concurrent.ExecutorService:

public **interface** ExecutorService **extends** Executor { ...


java.util.concurrent.Executor:

public **class** Executors { ...

java.util.concurrent.Executorhas仅限静态方法。

于 2013-06-14T18:51:02.110 回答