我正在用Java创建一个基类/父类,它将有几个方法来创建类本身,我想知道是否有任何方法让父类返回实例的子类,而不是返回父类的实例,然后必须投给孩子?创建一个返回子类对象的父类
例如,这里是我的父类:
public abstract class SFObject
{
// Variables
protected String mID;
protected String mName;
// Function called to create ourselves from a DiffObject
public abstract SFObject CreateFromDiffObject(DiffObject object);
// Function called to create a list of ourselves from a query
public List<SFObject> CreateListFromQuery(Connection connection, String query)
{
// Run the query and loop through the results
ArrayList<SFObject> objects = new ArrayList<SFObject>();
for (DiffObject object : connection.Query(query))
objects.add(CreateFromDiffObject(object));
return objects;
}
}
如果我创建基于我SFObject类的子类,在我的子类仍然会返回一个SFObject(需要被转换为两种功能我的子类类型)或SFObjects列表(需要单独转换为我的子类类型)。有什么办法(可能使用反射)让我的子类返回自身的实例,而不是SFObjects?
也许你正在寻找创建一个工厂或抽象工厂,而不是在这里。 – 2013-04-26 20:50:21