2013-02-16 127 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 
    }