java进阶之抽象类、接口和多态

抽象类和接口

java进阶之抽象类、接口和多态_第1张图片

抽象层次不同

  • 抽象类是对类抽象,而接口是对行为的抽象

  • 抽象类是对整个类整体进行抽象,包括属性、行为,但是接口却是对类局部行为进行抽象

跨域不同

  • 抽象类所跨域的是具有相似特点的类,而接口却可以跨域不同的类

  • 抽象类所体现的是一种继承关系,考虑的是子类与父类本质“是不是”同一类的关系

  • 而接口并不要求实现的类与接口是同一本质,它们之间只存在“有没有这个能力”的关系

设计层次不同

  • 抽象类是自下而上的设计,在子类中重复出现的工作,抽象到抽象类中

  • 接口是自上而下,定义行为和规范

多态

多态指的是编译期只知道是个人,具体是什么样的人需要在运行时能确定,同样的参数有可能会有不同的实现。

通过抽象建立规范,在运行时替换成具体的对象,保证系统的扩展性、灵活性。

实现多态主要有以下三种方式:

  • 接口实现

  • 继承父类重写方法

  • 同一类中进行方法重载

不论哪种实现方式,调用者持有的都是基类,不同的实现在他看来都是基类,使用时也当基类用。

你可能感兴趣的:(java进阶之抽象类、接口和多态)