要使用多态,在声明对象时就应该遵循一条法则:声明的总是父类类型或接口类型,创建的是实际类型。举例来说,假设我们要创建一个ArrayList对象,声明就应该采用这样的语句:
List list = newArrayList();
而不是
ArrayList list = newArrayList();
在定义方法参数时也通常总是应该优先使用父类类型或接口类型,例如某方法应该写成:
public void doSomething(List list);
而不是
public void doSomething(ArrayList list);