Java中抽象和多态的优势[重复]

Posted

技术标签:

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

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

以下是我的理解:

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

这些是我的问题:

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

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

【问题讨论】:

这个问题应该回答你的问题:***.com/questions/1913098/… 以下是关于为什么决定在 java 中不允许多重实现继承的答案:***.com/questions/995255/… 【参考方案1】:

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

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

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

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

【讨论】:

以上是关于Java中抽象和多态的优势[重复]的主要内容,如果未能解决你的问题,请参考以下文章

封装继承和多态

Java中的多态和等式[重复]

java基础知识——16.多态

java:从具有多态性的未知类调用静态方法[重复]

Java 8中接口和抽象类之间的根本区别[重复]

Android基础笔记