它允许您通过公共父接口访问所有子类。这对于运行所有子类上可用的通用操作很有用。需要一个更好的例子:
public class Shape
{
private int x, y;
public void draw();
}
public class Rectangle extends Shape
{
public void draw();
public void doRectangleAction();
}
现在,如果您有:
List myShapes = new ArrayList();
您可以将列表中的每个项目都引用为Shape,而不必担心它是Rectangle还是其他类型,例如Circle。您可以一视同仁;您可以全部绘制。您无法调用doRectangleAction,因为您不知道Shape是否真的是矩形。
这是您在以通用方式处理对象与专门处理对象之间进行的交易。
确实,我认为您需要阅读有关OOP的更多信息。一本好书应该会有所帮助:http : //www.amazon.com/Design-Patterns-Explained-Perspective-Object-Oriented/dp/0201715945