Java 从抽象类型初始化子类

Java 从抽象类型初始化子类,java,Java,我想写一个小的分类器程序。 然而,我所拥有的数据还没有完全确定,所以我试图使代码尽可能通用。 我遇到了这个问题 我基本上有三节课 abstract class AbstractPoint{} abstract class AbstractCluster{} class Classifier{ addPoint(AbstractPoint pt){...} } 到目前为止我很好。 但是在分类器类中,如果点符合某个模式 我需要创建一个集群来添加点。 但是不可能基于抽象类实例化对象。 有什么好的方

我想写一个小的分类器程序。 然而,我所拥有的数据还没有完全确定,所以我试图使代码尽可能通用。 我遇到了这个问题

我基本上有三节课

abstract class AbstractPoint{}
abstract class AbstractCluster{}

class Classifier{
addPoint(AbstractPoint pt){...}
}
到目前为止我很好。 但是在分类器类中,如果点符合某个模式 我需要创建一个集群来添加点。 但是不可能基于抽象类实例化对象。 有什么好的方法/模式吗?或者其他方法可以做到这一点?

您可以尝试以下方法:

    abstract class AbstractPoint{  public abstract void doThings();}
abstract class AbstractCluster{ 
    AbstractPoint[] points;
    public abstract void setPoints(AbstractPoint[] points);
    public AbstractPoint[] getPoints() {
        return points;
    }
}

class Classifier{
public void addPoint(AbstractPoint pt){
    pt.doThings();
}
public void addPointsToCluster(AbstractCluster cl,AbstractPoint[] points) {
    if(condition)   //your condition of pattern matching
    cl.setPoints(points);
}
}

现在还不完全清楚你在追求什么,但你可能正在寻找一种工厂模式。是否可以向
AbstractPoint
添加一个方法,该方法可以返回相应的具体
AbstractCluster
?听起来您需要一些具体的类以及这些抽象类。也许您应该编写一个或多个扩展
AbstractCluster
的类,您可以实际实例化这些类!谢谢我需要初始化分类器内的集群。