Java中 抽象类 和 接口的区别
  • 接口具有所有固有的 public 和 abstract 方法。我们不能通过尝试减少方法的可访问性来覆盖此行为。你甚至不能声明静态方法。只有公共和抽象。另一方面,抽象类在声明方法方面很灵活。我们还可以定义具有受保护可访问性的抽象方法。此外,我们也可以定义静态方法,前提是它们不是抽象的。允许使用非抽象静态方法。
  • 接口不能有完全定义的方法。根据定义,接口旨在提供唯一的契约。抽象类可以没有任何限制地具有非抽象方法。我们可以像在任何其他类中那样将任何关键字与非抽象方法一起使用。
  • 任何想要使用抽象类的类都可以使用关键字“extends”扩展抽象类,而用于实现接口的关键字是“implements”。一个类只能扩展一个类,但可以实现任意数量的接口。这个属性在java中常被称为模拟多重继承。 (区别是你不能扩展多个类,而你可以实现多个接口。)
  • 接口绝对是“抽象”的,不能被实例化;Java 抽象类也不能实例化,但如果存在 main() 则可以调用。
日期:2020-09-17 00:10:21 来源:oir作者:oir