gpt4 book ai didi

java - 我可以在接口(interface)中声明普通函数吗?

转载 作者:行者123 更新时间:2023-12-04 20:41:05 24 4
gpt4 key购买 nike

我在 oracle 网站上学习了 Java。在那上面,我看到了这样的例子

public class Horse {
public String identifyMyself() {
return "I am a horse.";
}
}
public interface Flyer {
default public String identifyMyself() {
return "I am able to fly.";
}
}
public interface Mythical {
default public String identifyMyself() {
return "I am a mythical creature.";
}
}
public class Pegasus extends Horse implements Flyer, Mythical {
public static void main(String... args) {
Pegasus myApp = new Pegasus();
System.out.println(myApp.identifyMyself());
}
}

我可以这样写界面吗?我希望我只能在接口(interface)中编写抽象函数。那为什么在oracle网站上给他们这样的例子呢?

最佳答案

此功能在 java 8 中可用,称为默认方法或防御方法。

Default methods enable you to add new functionality to the interfaces of your libraries and ensure binary compatibility with code written for older versions of those interfaces.

查找有关默认方法的更多信息 here .

Java 8 快照版本可用 jdk8 Build b129 .


人们在第一次听说新功能时会问一个关于默认方法的常见问题:“如果类实现两个接口(interface)并且这两个接口(interface)都定义了具有相同签名的默认方法怎么办? ”。

但它是在编译期间处理的,通过示例获得更多解释 Here

关于java - 我可以在接口(interface)中声明普通函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21981864/

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