8 java oop polymorphism abstract-class
在所有示例中,我已经看到接口用于实现多态性.现在我们有了抽象类的以下代码
AbstractClass parent = new Child();
Run Code Online (Sandbox Code Playgroud)
这里的人说,
一个常见的论点是多态性只适用于接口而不是抽象类.
我认为他的意思是它们通常是Java中用于多态的接口.我看到很多人发现他的问题很愚蠢,想要网址.这在这里我发现了什么.所以我的问题是在Java中使用多态中的抽象类(如我的例子中 - 因为多态性是非常宽的定义)是一种好的/通常的做法吗?
最好使用符合合同的最通用的父级;如果接口定义了您需要的所有函数签名,则使用它们而不是实现该接口的抽象类。Bill Venners 与 Erich Gamma 讨论的《设计模式中的设计原则》一文对此进行了详细介绍。