나는 자바의 인터페이스와 추상 클래스에 약간의 문제가있다. 내가 가진 인터페이스 같은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
[Generics로 객체 서브 클래스 반환하기] 가능한 복제본 (https://stackoverflow.com/questions/3284610/returning-an-objects-subclass-with-generics) – Tom