抽象类与接口的区别


抽象类与接口的区别

文章插图
首先需要了解的是抽象类是用来捕捉子类的通用特性的 , 而接口则是抽象方法的集合;抽象类不能被实例化 , 只能被用作子类的超类 , 是被用来创建继承层级里子类的模板 , 而接口只是一种形式 , 接口自身不能做任何事情 。
其次 , 抽象类可以有默认的方法实现 , 子类使用extends关键字来继承抽象类 , 如果子类不是抽象类的话 , 它需要提供抽象类中所有声明方法的实现 。而接口完全是抽象的 , 它根本不存在方法的实现 , 子类使用关键字implements来实现接口 , 它需要提供接口中所有声明方法的实现 。
【抽象类与接口的区别】抽象类可以有构造器 , 除了不能实例化抽象类之外 , 它和普通Java类没有任何区别 , 抽象方法可以有public、protected和default这些修饰符 。而接口不能有构造器 , 是完全不同的类型 , 接口方法默认修饰符是public , 不可以使用其它修饰符 。

    推荐阅读