在java里创建接口时,有没有必要在接口前面加上abstract的关键字呢

package org.apache.struts2.interceptor;

import java.util.Map;

public abstract interface SessionAware
{
public abstract void setSession(Map paramMap);
}

以上为struts2中org.apache.struts2包中的SessionAware接口的定义,请问:加上一个abstract,有必要吗,接口本身不就是抽象的吗,为什么还要加上关键字,是不是加上去只为了强调接口是抽象的,起提醒作用。还是???

接口里的方法都是抽象的,但如果一个接口本身是抽象的话,其他的类就不能直接实现这个接口,也就是说
Class X implements SessionAware{}
这样的代码是不合法的,抽象借口是为了让其他接口去继承的,比如这样
interface X extends SessionAware{...}
所以,抽象接口是有必要的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-04-29
因为用abstract关键字声明的类是抽象类,当然接口是特殊的抽象类。在接口中只包含抽象方法,而抽象类还可以包括实例方法。再说抽象类是一个类,它只能作为单一的父类被子类继承,接口也具有继承性,由于接口的特殊性,一个类可以实现多个接口,还有接口只有一个public修饰符。不知道这些可不可以解决你的疑问咯!abstract是强调那个类(或方法)是不是抽象的哦?
第2个回答  2009-04-29
抽象接口只有逻辑意义 没有实际意义 写或者不写abstract对使用者都没什么影响
第3个回答  2009-04-29
没必要,接口本来就属于抽象类本回答被提问者采纳
第4个回答  2009-04-29
没必要吧
相似回答