Java面试题 abstract class和interface有什么区别?

abstract class和interface有什么区别?

在这里插入图片描述
1.相同点:

  • 两者都是抽象类,都不能实例化。
  • interface实现类及abstract class的子类都必须要实现已经声明的抽象方法。

2.不同点:

  • interface需要实现,要用implements,而abstract class需要继承,要用extends。
  • 一个类可以实现多个interface,但是一个类只能继承一个abstract class。
  • interface强调特定功能的实现,而abstract class强调所属关系。
  • 尽管interface实现类及abstract class的子类都必须要实现相应的抽象方法,但实现的形式不同,interface中的每一个方法都是抽象方法(JDK1.8以后在接口中使用default和static关键字来修饰接口中定义的普通方法),都只是声明的(declaration,没有方法体),实现类必须要实现。而abstract class的子类可以有选择地实现。

猜你喜欢

转载自blog.csdn.net/weixin_44296929/article/details/108322637