接口,所有方法都必须是抽象的,但是一个吗?

时间:2020-02-02 03:56:45

标签: java android interface

我遇到的情况是

public interface AlarmBroadcasterRC {
    abstract void DataIn(byte[] data);
    abstract void DataOut(byte[] data);
    abstract Boolean Drop(String id);
    abstract Boolean Connected(String id, Boolean state);
}

public class GeneralActivity extends Activity implements View.OnClickListener, AlarmBroadcasterRC {
.....
}

但是我在类声明中从编译器中得到了一个错误: enter image description here

这是否意味着在Android Java中,接口必须实现第一个方法,或者,如果其所有方法都是抽象的,则该类也必须是抽象的?

很抱歉,将问题扩展到:我正在关注here的答案之一:

2 个答案:

答案 0 :(得分:1)

如果您有一个实现接口且不是抽象的类,则必须实现其抽象方法的 all ,而不仅仅是第一个。

答案 1 :(得分:1)

interface中,所有methods默认为abstract,您无需添加abstract关键字。

实现interface时,必须实现其所有方法或将类声明为抽象。

如果不想在子类中实现,可以做什么,可以在interface中提供方法的默认实现。

示例:

public interface AlarmBroadcasterRC {
    default void DataIn(byte[] data) { }
    default void DataOut(byte[] data) {}
    default Boolean Drop(String id) {  return false; }
    default Boolean Connected(String id, Boolean state){ return false; }
}