【发布时间】:2019-01-14 07:30:08
【问题描述】:
public class Test {
private final String url;
public Test(String url) {
this.url = url;
}
public String getUrl() {
return url;
}
}
Test 类有:
- 只有一个实例变量是私有的和最终的。
- 没有二传手。
- 初始化实例变量的唯一方法是通过构造函数。
- 而且一旦设置了 URL,即使在 getUrl 中也不能修改它,即使该方法被 Test 的任何子类覆盖。
但是我正在阅读的一本书说上面的 Test 类是可变的,因为:
这两个类都不是最终的,因此可以扩展,并且子类可以覆盖实例方法。但是Test类除了构造函数之外真的没有任何实例方法。
构造函数也不是私有的。
您能帮我理解为什么 Test 类是可变的吗?
【问题讨论】:
-
那是什么书?
-
make 方法
getUrlfinal 和Test的对象将是不可变的。 -
@AdityaNarayanDixit 并非如此,您仍然可以在子类中添加可变状态。
标签: java immutability