public class Test {
private final String url;
public Test(String url) {
this.url = url;
}
public String getUrl() {
return url;
}
}
Тестовый класс имеет:
- Только одна переменная экземпляра, которая является приватной и конечной.
- Нет сеттеров.
- Единственный способ инициализировать переменную экземпляра - через конструктор.
- И после того, как URL задан, его нельзя изменить даже в getUrl, даже если этот метод переопределен каким-либо подклассом Test.
Но книга, которую я читаю, говорит, что вышеупомянутый тестовый класс изменчив, потому что:
-
Ни один из классов не является окончательным, чтобы его можно было расширить, а подкласс может переопределять методы экземпляра. Но класс Test на самом деле не имеет никаких методов экземпляра, кроме конструктора.
-
И при этом конструктор не является частным.
Не могли бы вы помочь мне понять, почему класс Test изменчив?