-1

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

4

3 回答 3

0

接口只是提供实现该接口的类的骨架。

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

看一看:接口 vs 抽象类(通用 OO)

于 2013-02-16T10:23:21.100 回答
0

不同之处在于实现接口的类将被迫提供它们自己的这些方法的实现,而扩展抽象类的类将提供这些方法的实现。

于 2013-02-16T10:23:32.567 回答
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
    }
    
于 2013-02-16T11:42:14.520 回答