当我们将类中的所有变量和方法声明为final时,我们限制了覆盖的概念。
然后,“我们想用OOP语言限制IS-A关系的原因是什么(即使我们通过使用最终类来限制IS-A关系,这种语言具有Has-A关系?”
我的观点是我们不能以任何方式限制访问我们班级的成员,然后通过允许IS-A关系来轻松访问。 否则创建对象是一件令人头疼的事吗? (在我看来'访问'不包括修改)
如果我错过任何重要的编程主题,请原谅。告诉我,它是什么?
答案 0 :(得分:1)
是否有必要将一个类声明为最终类?
必要性,没有。如果你想禁止扩展它,则声明一个类final。 这可以防止编程错误。 例如,推荐的做法是使实用程序类只使用静态方法作为final, 继承这样的课程是没有意义的, 并且显然是编程错误。
答案 1 :(得分:1)
安全是必要的。 Java中的String类是一个Immutable / final类。不可能进行子类化系统类是另一个例子。
答案 2 :(得分:0)
是否有必要将一个类声明为最终类?
是。如果您使用class
实施Singleton pattern。如果有人可以对您的Singleton进行子类化,则可能存在多个(违反Singleton模式)。