【问题标题】:Advantages of Abstraction and Polymorphism in Java [duplicate]Java中抽象和多态的优势[重复]
【发布时间】:2015-06-22 21:27:03
【问题描述】:

我正在学习 Java 中的抽象概念。

以下是我的理解:

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

这些是我的问题:

  1. 当一个抽象类在所有方法都被抽象化的情况下可以表现得像一个接口时,为什么我们需要单独的接口?请举例说明,以便更好地理解。

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

【问题讨论】:

标签: java oop interface abstraction


【解决方案1】:

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

合同说明什么,实施说明如何

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

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

【讨论】:

    猜你喜欢
    • 2017-05-04
    • 2014-07-20
    • 1970-01-01
    • 2011-07-13
    • 2011-08-24
    • 2011-12-05
    • 2011-07-02
    • 1970-01-01
    • 2011-07-23
    相关资源
    最近更新 更多