多项选择题

A.工厂方法不一定每次都返回一个新的对象
B.工厂方法返回的对象不一定是自己创建的
C.工厂方法返回的应该是抽象类型,而不是具体类型
D.工厂对象应该有一个超类