Я строю базовый/родительский класс в 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 (которые необходимо индивидуально отнести к типу моего дочернего класса). Есть ли способ (возможно, использование Reflections), чтобы мой дочерний класс возвращал экземпляры себя как самого себя, а не как SFObjects?
Возможно, вы ищете здесь фабрику или абстрактную фабрику. –