在界面中使用abstract关键字

时间:2009-04-26 18:33:41

标签: java oop

我知道“公共接口”和“公共抽象接口”之间的区别,但是当应用于方法时会有区别吗?

public interface IPluggableUi {
    abstract public JComponent getPanel();
    abstract public void initUi();
}

public interface IPluggableUi {
    public JComponent getPanel();
    public void initUi();
}

5 个答案:

答案 0 :(得分:24)

接口中声明的方法默认为public和abstract。

然而,有人可以:

public interface myInterface{
     public abstract void myMethod();
}

但是,不鼓励使用这些修饰符。抽象修饰符也应用于接口声明。

特别是关于你的问题:

“为了与旧版本的Java平台兼容,允许但不鼓励,但作为一种风格,不要为接口中声明的方法冗余地指定抽象修饰符。”

源: http://java.sun.com/docs/books/jls/second_edition/html/interfaces.doc.html

第9.4节:抽象方法声明。

答案 1 :(得分:4)

不,你也可以写

public interface IPluggableUi {
    JComponent getPanel();
    void initUi();
}

同样的事情

答案 2 :(得分:4)

旁注;界面中定义的值是 public static final 我的默认值

int VALUE = 5;

相同

public static final int VALUE = 5;

在界面中。

答案 3 :(得分:0)

没有。您只能将方法abstract应用于抽象基类。

接口指定必须由具体(非抽象类)最终实现的方法集。

Abstract将指定一个未在抽象基类中实现的方法,并且必须在具体的子类中实现。

(另请注意,public关键字对于接口上的方法规范是多余的)

答案 4 :(得分:0)

Java中没有公共抽象接口。所有接口都是“抽象的”,因为它们无法实例化。所有功能都是自动“抽象”的,因为它们需要实现。