我正在编写一个名为launchable的接口。launchable接口指定了三个方法:launch(),不带参数也不返回值;isabletofly(),不带参数也不返回true或false;land()不带参数也不返回值。
这就是我为isabletofly所做的尝试:
public interface Launchable
{
public void launch();
public boolean isAbleToFly();
return true
public void land();
}
但它说非法启动类型返回真的?
1条答案
按热度按时间hrirmatl1#
boolean isAbleToFly()
看起来与接口声明一样好,但是您可能不想在接口中声明实现(return true
). 如果您使用的是Java8或更高版本,那么可以为您的方法声明一个默认实现(下面是更多信息)。您将需要创建一个扩展该接口的类,然后才添加实现。如果您想要一个在实现其他方法的同时为某些方法定义契约的结构,请看一下抽象类。https://docs.oracle.com/javase/tutorial/java/iandi/abstract.html
此处为可运行示例
===编辑关于接口中的默认方法===
对于Java8或更高版本,现在可以为接口声明默认方法,如下例所示。根据文档,用例是在开发接口时为旧代码提供向后兼容性,因此它可能不是您想要的。