2013-02-16 78 views
-1

如果接口有2个方法A()和B()以及抽象类也有相同的A()和B()那么它们之间有什么不同呢 ?接口和抽象方法的区别

+0

没有一个提供的答案能满足您吗? – 2013-03-06 17:57:58

+0

是的,因为接口和抽象都在一个层次上进行方法抽象。 – 2013-03-07 05:58:50

+0

可能重复[何时使用接口而不是抽象类,反之亦然?](http://stackoverflow.com/questions/479142/when-to-use-an-interface-instead-of-an-abstract -class和 - 反之亦然) – nawfal 2014-07-07 10:15:23

回答

0

一个接口只是提供了一个实现此接口的类的骨架。

抽象类(也可以实现接口)可以添加一些默认功能,当然这些功能可以在派生类中重写。

看看:Interface vs Abstract Class (general OO)

0

不同的是,实现接口的类将被迫提供自己的实现这些方法,而扩展抽象类的类将与这些的实现提供方法。

0

差异:

假设A()B()没有在抽象类的实现,即只有签名

  1. 在接口A()的情况下和B()只会是签名的,即没有任何实现和类实现了这个接口将必须提供这样的实现(无关键字override):

    returnType AbstractClass.A() 
    { 
        // Code here 
    } 
    
  2. 实施抽象类的类将有覆盖如下抽象方法:

    override accessSpecifier returnType A() 
    { 
        // Code here 
    } 
    
    override accessSpecifier returnType B() 
    { 
        // Code here 
    }