gpt4 book ai didi

Java 抽象类 - 实例变量应该是私有(private)的还是 protected ?

转载 作者:行者123 更新时间:2023-12-05 04:06:59 25 4
gpt4 key购买 nike

java抽象类中的实例变量应该是private还是protected?

简单的问题。我试图更深入地了解 java 中的抽象概念。谢谢!

最佳答案

根据经验,选择非 final 私有(private)变量。如果您的设计要求让派生类访问这些变量,请提供 protected 方法来访问它们。

使用 protected 变量会在所有类中产生维护责任,无论是否抽象。一旦有人从您的抽象类继承,您的 protected 变量就会暴露出来,就好像它们是公开的一样。以下是应避免使用此变量的一些原因:

  • 继承类可以随意更改变量 - 这可能会绕过抽象基类设置的变量验证
  • 继承类变得依赖于变量名称和类型 - 这锁定了您在定义 protected 变量时所做的设计选择。

第一条规则不适用于 final 变量,因为它们无法更改,因此该规则为它们设置了一个异常(exception)。不过,第二条规则仍然适用,因此您在定义 protected 变量时应该小心,即使在它们是最终变量的情况下也是如此。

关于Java 抽象类 - 实例变量应该是私有(private)的还是 protected ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49215130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com