abstract class和interface有什么区别?

2024-11-13 12:21:46
推荐回答(1个)
回答1:

区别如下:

  1. 相同点
    两者都是抽象类,都不能实例化。

    interface实现类及abstrct class的子类都必须要实现已经声明的抽象方法。

  2. 不同点

    interface需要实现,要用implements,而abstract class需要继承,要用extends。

    一个类可以实现多个interface,但一个类只能继承一个abstract class。

    interface强调特定功能的实现,而abstract class强调所属关系。

    尽管interface实现类及abstrct class的子类都必须要实现相应的抽象方法,但实现的形式不同。interface中的每一个方法都是抽象方法,都只是声明的 (declaration, 没有方法体),实现类必须要实现。而abstract class的子类可以有选择地实现。