【发布时间】:2013-09-29 12:52:40
【问题描述】:
带有接口的代码
/* FileName : cat SampleInterface.java */
public interface SampleInterface
{
public void draw();
public void color();
}
带有抽象方法的代码
/* FileName : SampleAbstractMethod.java */
abstract class SampleAbstractMethod
{
public abstract void draw();
public abstract void color();
}
它们在哪些方面不同?
肯定会有很大的不同,如果抽象方法足够,Java 开发人员就不会引入接口。我看到的共同点是
两者都不能有定义,就像我发布的代码一样。
继承或实现类必须引入定义。
现在我看到了抽象方法可以做接口可以做的事情,那为什么还要有接口呢?,接口有什么特别之处而抽象方法做不到呢?究竟是什么原因需要和接口?
EDIT:我的问题是关于抽象方法和接口之间的区别,而不是重复链接指向我的abstract classes。所以请解释一下我的问题与标记的重复项有何相似之处。
【问题讨论】:
-
上面列出的前两个问题都已关闭,但我认为这重复了这个问题:Interface vs Abstract Class (general OO)
-
与抽象类相比,接口的一个主要缺点是,如果你想更新接口,它会破坏你之前引用该接口的现有代码..
-
抽象方法可能有实现,但接口方法只有方法签名