我一直在想,当接口被假定不包含代码实现时,为什么允许它在接口中执行代码实现:
public interface someInterface{
String someString = "example";
}我可以让一个类实现这个接口,而不会出现错误:
public class someClass implements someInterface怎么会这样?
发布于 2013-08-29 18:39:41
您可以在接口中声明常量,这就是您所做的。您尚未实现代码。
接口中声明的变量被隐式声明为public static final。
JLS,第9.3节涵盖了以下内容:
接口主体中的每个字段声明都是隐式的公共、静态和最终的。允许冗余地为这些字段指定任何或所有这些修饰符。
发布于 2013-08-29 18:39:31
没有严格的条件,一个接口必须有签名的methods.Remember,在java中也有标记接口。
其次,您可以在接口中声明变量。
以及在一个someString中分配的变量static context,并由该interface在所有implemntations之间共享。
要点是声明interface中的变量是隐式的static,final.You可以使用它们。
发布于 2013-08-29 18:43:40
根据java文档
接口形成类与外部世界之间的契约,此契约由编译器在构建时强制执行。如果您的类声称要实现接口,则该接口定义的所有方法必须在该类成功编译之前出现在其源代码中。
在这里,您没有为implement.So定义任何方法,您在这里没有收到任何错误。
https://stackoverflow.com/questions/18518643
复制相似问题