为什么我们需要java中提供方法签名的接口

Jav*_*ons 3 java abstract-class interface

关于接口,我对java很困惑:以下是我的接口:

interface shape
 {
     public   String baseclass="shape";

     public void Draw();     

 }
Run Code Online (Sandbox Code Playgroud)

同样我可以有任意数量的接口,另一个类可以实现任何数量的接口,但实现类必须实现接口提供的所有方法.

我能看到的唯一优势是拥有一些共同的属性并在课堂上分享它们.

类不是实现接口,而是可以声明方法并使用它,这也可以正常工作.

那么为什么我们需要java中的接口?即使是多重继承,接口也没有实现,只有方法签名.

我真的很困惑这些,当然还有着名的抽象类.

谢谢.

Fad*_*orm 6

我看到它使用的主要原因是在库之类的东西中公开函数,例如,您必须提供的是函数和库jar,然后您的库的用户可以使用这些函数而无需查看您的实现.

还有很多其他原因,请参阅多态:

http://www.artima.com/objectsandjava/webuscript/PolymorphismInterfaces1.html

http://docs.oracle.com/javase/tutorial/java/IandI/polymorphism.html