界面和抽象方法的差异

时间:2013-02-16 10:21:55

标签: oop

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

3 个答案:

答案 0 :(得分:0)

接口只提供实现此接口的类的框架。

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

看看:Interface vs Abstract Class (general OO)

答案 1 :(得分:0)

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

答案 2 :(得分:0)

的差异:

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

  1. 如果界面A()B() 只会成为签名,即没有任何实现,实现此接口的类必须提供类似的实现这个(没有关键字override):

    returnType AbstractClass.A()
    {
        // Code here
    }
    
  2. 实现Abstract类的类将覆盖这样的抽象方法:

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