以下代码有什么区别
AbstractClass object = new SubClass();(SubClass是一个扩展AbstractClass的类)
SubClass object = new SubClass();
在两个场景中,子类扩展了Abstract Class并实现了Abstract Class
的方法答案 0 :(得分:1)
第一个是首选:你要声明一个更通用类型的变量,如果需要,你可以多态将它替换为另一个对象实例,只要它也从相同的抽象类。
在GoF书中,他们将此原则称为“程序到接口,而不是实现”(技术上AbstractClass
不是接口,它是一个抽象类,但同样的原则适用。)