Witam,
borykam się z pewnym problemem, a raczej niewiedzą jak zapisać. Posiadam Interfejs Vectorable i klasę Vector2D.
public interface Vectorable {
public void add(Vector2D vec);
}
public class Vector2D implements Vectorable{
private double x;
private double y;
Vector2D(double x, double y) {
setX(x);
setY(y);
}
@Override
public void add(Vector2D vec) {
x = vec.getX();
y = vec.getY();
}
//Settery, gettery
}
Wszystko wygląda niby ładnie pięknie, ale jakbym chciał zaimplementować ten interfejs dla klasy Vector3D nie miałby sensu. Nie można dodawać wektorów, które są w różnych wymiarach.
Pytanie brzmi następująco, w jaki sposób mogę w interfejsie zaznaczyć, aby argument funkcji przyjmował typ klasy, która implementuje interfejs?
public interface Vectorable {
public double length();
public void add(? vec); // Argument nazwany po klasie dziedziczącej
}