首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有可能在java中没有方法而拥有一个接口?

问有没有可能在java中没有方法而拥有一个接口?
EN

Stack Overflow用户
提问于 2013-11-04 18:17:15
回答 5查看 4.6K关注 0票数 2

我对java很陌生,试图理解interface.Making --一个没有方法的接口给出编译时间-- error.What是造成这种行为的原因吗?

代码语言:javascript
复制
import java.io.*;
interface A{
int x=10;

}
class B implements A{


    System.out.print("i am in B and x is"+x);


}
class InterfaceEx{
    public static void main(String[] args) {
        A a;
        a=new B();

        }
}
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-11-04 18:19:41

是的,没有Java方法的接口是可能的。实际上,Serializable和Cloneable接口是内置于Java的,没有任何方法。它们被称为“标记”接口。

引用维基百科页面上的标记界面的话

虽然典型的接口指定实现类必须支持的功能(以方法声明的形式),但是标记接口不需要支持。仅仅存在这样一个接口就表明了实现类的特定行为。

至于为什么您的B接口没有编译(既然您已经提供了代码),您需要将语句放在方法或构造函数中,例如:

代码语言:javascript
复制
class B implements A{
    public B() {
         System.out.print("I am in B and x is"+x);
    }
}
票数 5
EN

Stack Overflow用户

发布于 2013-11-04 18:23:15

是。java.io.Serializable接口就是这种标记接口的例子。

票数 1
EN

Stack Overflow用户

发布于 2013-11-04 18:23:28

根据java语言规范

接口的主体可以声明接口的成员,即字段(§9.3)、方法(§9.4)、类(§9.5)和接口(§9.5)。

它并没有说你必须这么做,所以你可以有空的接口。

从上面的答案来看,有空的接口

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19774334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档