Java中抽象和多态的优点

use*_*074 6 java oop abstraction interface

我正在阅读Java中的抽象概念.

这些是我的理解:

  1. 抽象是一种呈现函数签名和隐藏实现的方法,将其留给可以实现/扩展接口/抽象类的用户.
  2. 通过这种方式,我们可以实现更少的代码修改范围,可重用性.
  3. 我们可以将对象实时与程序代码中的对象紧密关联.

这些是我的问题:

  1. 当抽象类在所有方法都是抽象的时候可以像接口一样运行时,为什么我们需要单独使用接口?请用一个例子来解释,以便更好地理解.

  2. 我们可以在功能的基础上调用Abstract class = Interface + Inheritance吗?因为我们可以与Abstract类一起实现接口和继承的功能.

Ale*_*you 2

简单地说:接口是契约,抽象类是骨架实现。(此外,在 Java 中主要使用接口,因为不可能扩展多个类。)

合同说了什么,实施说怎么做

接口示例: java.util.List . 它具有任何列表应具有的所有方法:add()size()等等indexOf()

抽象类的示例: java.util.AbstractList . 尽管它有许多抽象方法,但List其中实现了一些不依赖于元素在具体列表中存储方式的方法(addAll()equals()toString()其他)。为了创建完整的实现,并非所有List方法都应该被实现,从而使实现者的工作更容易。