У меня есть векторный класс:
public class Vector {
public double x;
public double y;
public double getLength() {
return Math.sqrt(x*x+y*y);
}
}
В большинстве случаев я просто хочу использовать его как есть, но в определенном случае я хочу использовать его изменчивую версию, поэтому я попытался расширяя его:
public class VectorVolatile extends Vector {
public volatile double x;
public volatile double y;
}
Идея заключается в том, чтобы использовать все функции, которые есть в исходном классе, также для класса volatile. Но это не работает. Переменные (x, y) не будут заменены правильно.
Я хочу использовать volatile, потому что у меня 2 потока. Один поток читает и пишет в объект, другой только читает. Я хотел бы использовать volatile вместо синхронизированного, потому что я думаю, что это быстрее и поскольку один поток только читает, установки переменных на volatile должно быть достаточно.
Есть ли способ получить все функции из исходного класса? без копирования и вставки? Разве я не должен использовать volatile?