gpt4 book ai didi

java - 编写一个不带参数并返回 true 或 false 的方法 isAbleToFly()?

转载 作者:行者123 更新时间:2023-12-02 09:04:55 25 4
gpt4 key购买 nike

我正在编写一个名为 Launchable 的界面。 Launchable 接口(interface)指定了三个方法:launch()(不带参数且不返回值)、isAbleToFly()(不带参数且返回 true 或 false)和 land()(不带参数且不返回值)。

这是我对 isAbleToFly 所做的尝试:

 public interface Launchable
{
public void launch();

public boolean isAbleToFly();
return true

public void land();

}

但它说非法开始类型返回true?

最佳答案

boolean isAbleToFly()接口(interface)声明看起来很好,但您可能不想在接口(interface)中声明实现( return true )。如果您使用的是 Java 8 或更高版本,您可以为您的方法声明默认实现(更多信息如下)。

您将需要创建一个扩展该接口(interface)的类,然后才添加实现。如果您想要一个在实现其他方法的同时为某些方法定义契约的结构,请查看抽象类。 https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html

    interface Launchable {
void launch();

boolean isAbleToFly();

void land();
}

class LandThing implements Launchable {
public void launch() {
System.out.println("¯\\_(ツ)_/¯");
}

public boolean isAbleToFly() {
return false;
}

public void land() {
System.out.println("¯\\_(ツ)_/¯");
}

}

class Playground {
public static void main(String[ ] args) {
Launchable landThing = new LandThing();
System.out.println("Can landThing fly?: " + landThing.isAbleToFly());
landThing.land();
}
}

可运行示例 here

====编辑接口(interface)中的默认方法===

对于 Java 8 或更高版本,现在您可以声明 default methods对于您的接口(interface),如following example 。根据文档,用例是在改进接口(interface)时为旧代码提供向后兼容性,因此它可能不是您正在寻找的。

    interface Launchable {
void launch();

default boolean isAbleToFly() {
return true;
};

void land();
}

class FlyThing implements Launchable {
public void launch() {
System.out.println("¯\\_(ツ)_/¯");
}

// Notice that we will be using the default implementation of isAbleToFly here


public void land() {
System.out.println("¯\\_(ツ)_/¯");
}

}


class LandThing implements Launchable {
public void launch() {
System.out.println("¯\\_(ツ)_/¯");
}

public boolean isAbleToFly() {
return false;
}

public void land() {
System.out.println("¯\\_(ツ)_/¯");
}

}

class Playground {
public static void main(String[ ] args) {
Launchable landThing = new LandThing();
Launchable flyThing = new FlyThing();
System.out.println("Can landThing fly?: " + landThing.isAbleToFly());
System.out.println("Can flyThing fly?: " + flyThing.isAbleToFly());

landThing.land();
}
}

关于java - 编写一个不带参数并返回 true 或 false 的方法 isAbleToFly()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59895292/

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