私はjavaのインターフェイスと抽象クラスでいくつかの問題があります。 私が持っているインタフェース、このようなjava抽象メソッドの抽象クラス
public interface IVector <T extends IVector>{
public IVector add(IVector vector);
public IVector sub(IVector vector);
public double dotProduct(IVector vector);
public IVector scalar(double scalar);
}
とabstract class
:私は結果を返すことができますどのように、n個の座標とベクトルの
public abstract class Vector implements IVector{
final ArrayList<Double> coordinates;
public Vector(ArrayList<Double> list){
coordinates = list;
}
public IVector add(Vector v){
ArrayList<Double> newCoordinates = new ArrayList<>();
if (v.coordinates.size() == this.coordinates.size()){
for (int i = 0; i < this.coordinates.size(); i++) {
newCoordinates.add(v.coordinates.get(i)+this.coordinates.get(i));
}
}
else return null;
return new IVector(newCoordinates);
}
そのわずか加え、?私は子供のクラス(2dVectorや3dVectorのような)を将来使用したいですか?
なぜ生のタイプを使用しますか?あなたがいなければ、あなたはすでにあなたの答えを持っています。 – Tom
[ジェネリックでオブジェクトサブクラスを返す]の可能な複製(https://stackoverflow.com/questions/3284610/returning-an-objects-subclass-with-generics) – Tom