【发布时间】:2012-07-16 06:11:41
【问题描述】:
今天我在阅读一些关于 BigDecimal 类的文档时, 我偶然发现了一个基本属性,BigDecimal 类是不可变的。
我该如何向祖母解释不变性的概念?
类的不变性的优缺点是什么?
扩展类可以变得可变吗?
考虑到我想用我的班级扩展 BigDecimal:
`MyBigDecimal extends BigDecimal`
扩展是否违反了基本的面向对象设计原则?
【问题讨论】:
-
1. “不变”。 3. 是的,可以。 4. 如果扩展一个类会违反基本的 OOP 原则,那么它就不是 Java 的一个特性。
-
BTW
BigDecimal就像 JDK 中的许多不可变类一样是final,所以它们不能被扩展和可变。 -
@PeterLawrey BigDecimal 不是最终的,尽管它应该是。
-
@assylias 好点。它的方法也不是最终的,这意味着它们可以更改。
-
@assylias 因此,这可以被视为继续扩展类并最终覆盖它的方法的绿灯?
标签: java design-patterns bigdecimal