Advantages of Abstraction and Polymorphism in Java
我正在研究Java中的抽象概念。
以下是我的理解:
抽象是表示函数签名并隐藏实现的方法,将其留给可以实现/扩展接口/抽象类的用户。
这样我们就可以获得更大的范围来减少对代码的修改,提高可用性。
我们可以实时地将对象与程序代码中的对象紧密联系起来。
以下是我的问题:
当一个抽象类可以像一个接口一样工作时,所有的方法都是抽象的,为什么我们需要单独的接口?请举例说明,以便更好地理解。
我们是否可以基于功能调用抽象类=接口+继承?因为我们可以与抽象类一起实现接口和继承的功能。
- 这个问题应该回答你的问题:stackoverflow.com/questions/1913098/…
- 这里给出了一个答案,说明为什么在Java中不允许多个实现继承:StasPox.com /问题/ 995255 / & Helip;
简单地说:接口是契约,抽象类是骨架实现。(另外,Java接口主要使用,因为它不可能扩展多个类。)
合同说什么,执行说什么。
接口示例:java.util.List。它有所有列表应该有的方法:add()、size()、indexOf()等等。
抽象类的例子:java.util.AbstractList。虽然它有许多抽象方法,但一些不依赖于元素存储在具体列表中的方式的List方法在那里实现(addAll()、equals()、toString()等)。要创建完整的实现,并非所有的List方法都应该实现,从而使实现者的工作更容易。