java面试题基础篇-07-接口和抽象类的区别

2022/2/4 17:46:13

本文主要是介绍java面试题基础篇-07-接口和抽象类的区别,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

接口和抽象类的区别

  • 抽象类中可以存在普通成员函数,而在接口中的只能存在public abstract方法
  • 抽象类的成员变量可以是各种类型的,而在接口中的成员变量只能是public static final类型的
  • 抽象类只可以继承一个,而接口可以实现多个。

深入理解

  • 接口的设计目的,是对类的行为进行约束,也就是提供一种机制,可以强制要求不同的类中具有相同的行为,它只约束了行为的有无,但不对如何实现行为做具体的限制。
  • 抽象类的设计目的,是代码复用,当不同的类具有相同的行为,而其中一部分行为的实现方式一致时,可以让这些类都派生于一个抽象类。
  • 抽象类是对类本质的抽象,是is的关系,就像BMW is CAR,抽象类包含并实现子类的通用特性,将子类存在差异化的特性进行抽象,交给子类来实现。
  • 接口是对行为的抽象,是like的关系,就像BIRD like Aircraft,接口的核心是定义行为,即实现类可以做什么,至于实现类主题是谁,是如何实现的,接口并不关心。
  • 使用场景:当你关注一个事物的本质的时候,用抽象类;当你关注一个操作的时候,使用接口。


这篇关于java面试题基础篇-07-接口和抽象类的区别的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程