Java 创建一个多端向量

Java Creating a vector with multiple ends

我想创建两种类型的向量(如 classes):

我的想法是创建一个抽象的超级class(例如AbstractVector),我在其中定义了向量的公共函数:

abstract class AbstractVector {
    //Methods, e.g. length(), getter...
}

然后我的两个子classes Vector 和(例如)TriVector 扩展了上面的class。我面临的问题是处理 TriVector class 中的两个终点。 我完全不知道如何去做或如何正确设置抽象 class 所以我可以有一个法向量和一个有两个结尾的向量,我可以在它们之间切换(例如 TriVector class 有一个方法 switch() 可以在两个终点之间切换)。

希望有人能帮助我或提出更好的解决方案。

一个非常粗略的解决方案草图,仅详细说明 getStart()getEnd() 方法:

abstract class AbstractVector {
    protected Point startPoint;
    public Point getStart() {
        return startPoint;
    }
    public abstract Point getEnd();
    //Methods, e.g. length(), getter...
}

class Vector extends AbstractVector {
    protected Point endPoint;
    public Point getEnd() {
        return endPoint;
    }
}

class TriVector extends AbstractVector {
    protected Point[] endPoints = new Point[2];
    protected int activeEndPoint = 0;

    public Point getEnd() {
        return endPoints[activeEndPoint];
    }

    public void switchEnds() {
        activeEndPoint = 1 - activeEndPoint;
    }
}