我想创建扩展 Activity 的自定义活动类,
但是添加了另一个继承者必须实现的抽象方法。
例子:
interface MyActivity extends Activity
{
public void myAbstractMethod();
}
IDE 说:“Activity 类型不能是 MyActivity 的超接口;超接口必须是接口”
我怎么能做这样的事情?
谢谢你。
听起来你需要MyActivity
成为一个抽象类,而不是一个接口。接口不继承自类;它们只能从其他接口继承。
尝试
abstract class MyActivity extends Activity
{
public abstract void myAbstractMethod();
}
一个具有所有抽象方法的抽象类表现得像一个接口,所以这听起来像是你需要的。
您可以使用抽象类而不是接口。
在http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html阅读更多内容
例如
abstract public class AbstractActivity extends Activity {
public abstract void myAbstractMethod();
}
但是,这不允许您同时实现 AbstractActivity 和另一个超类,但听起来您不需要这个。
一个接口只能扩展其他接口,不能是一个具体的类。
看起来接口可以扩展一些类。例如,
java.util.concurrent.ExecutorService:
public **interface** ExecutorService **extends** Executor { ...
java.util.concurrent.Executor:
public **class** Executors { ...
但java.util.concurrent.Executorhas
仅限静态方法。