更改子类的超类实例变量的值

2024-03-01

我发现我可以在子类中这样做:

ParentClass.variable = value;

但有人告诉我,最好使用 get/set 方法,而不是直接访问类外部的变量。尽管这是当我在另一个类中有该类的实例时,而不是子类和超类。

那么是否有更好的方法来做到这一点,哪种方法通常被认为是最佳实践?


你有很多选择。

  1. super.field = x您必须有权访问该字段才能执行此操作
  2. field = x您必须有权访问该字段才能执行此操作。你也不能再有另一个field在子项中或仅在子项中设置。
  3. setParentField(x)我想说这是第二好的方法。
  4. x = callChildMethod()该代码可以位于父级中。孩子有返回结果的实现。如果可以的话,这是最好的方法。请参阅模板方法模式 http://en.wikipedia.org/wiki/Template_method_pattern
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更改子类的超类实例变量的值 的相关文章

  • 使用 BlobOutputStream 在 Azure 中上传 blob

    我正在尝试直接从流上传 blob 因为我不知道我决定尝试的流的长度这个答案 https stackoverflow com a 24621538 3695939 这不起作用 即使它从流中读取并且不会抛出任何异常 内容也不会上传到我的容器 我
  • Java selenium - 如何在 TimeoutException 之后正确刷新网页?

    ChromeOptions options new ChromeOptions options addExtensions new File extension 6 2 5 0 crx ZenMate options addExtensio
  • 我需要在 Java 9 中使用哪个模块才能使用 JPA?

    我正在使用一个需要 JPA 的项目测试 Java 9 javax persistence 类 当我添加module info java并声明我的模块 下的所有类javax persistece包变得不可用 我搜索了很多 但找不到在 Java
  • 从SQLite列中获取所有数字字符串并进行总和计算

    我是 Android 和 SQLite 的新手 我在 SQLite 中有一个只有数字的 AMOUNT 列 我可以在 ListView 中显示它 但我无法找到任何我理解的方法来将它们全部添加并显示在 TextView 中 这是数据库助手 im
  • Java:等于和==

    让我们看看我们有 2 个对用户定义类实例的引用 即 Java 中的 a 和 b 会不会有一种情况 a b 但 a equals b 返回 false 当然 实施 equals 完全取决于班级 所以我可以写 class Foo public
  • python 中的子进程调用以使用 JAVA_OPTS 调用 java jar 文件

    示例代码 import subprocess subprocess call java jar temp jar 如何在上面的命令中指定JAVA OPTS 当我使用上述命令时 我收到 java lang OutOfMemoryError 无
  • Java 套接字 - 读和写

    问题 客户端没有收到任何消息 这是客户端和服务器的完整代码 CLIENT public class Client extends Socket public Client String hostName int port throws Un
  • 检查更新时 Maven 无限期挂起

    我正在使用 Maven 构建一个项目 我是新手 并且它挂起 mvn package INFO Scanning for projects INFO INFO Building Presentation Reports INFO task s
  • 覆盖Java中的属性[重复]

    这个问题在这里已经有答案了 在 Java 中 我最近有几个项目 我使用了这样的设计模式 public abstract class A public abstract int getProperty public class B exten
  • java charAt() 和startsWith() 哪个更快? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我的问题是 如果我想检查特定索引中字符串的一个字符 仅检查一个字符 哪种方法非常有效charAt or startsWith 我的意思是 据我所
  • 有没有办法删除 JShell 中的导入?

    我正在发现 JShell 并且发现默认添加的导入 jshell gt imports import java io import java math import java net import java nio file import j
  • 图标和导航视图之间的左边距

    我必须在图标和图标之间添加左边距NavigationView 如下图中箭头所示 我知道根据谷歌规范 这个边距必须有16dp但我需要改变它 我努力了
  • Unix 纪元时间转 Java Date 对象

    我有一个包含以下内容的字符串UNIX 纪元时间 https en wikipedia org wiki Unix time 我需要将其转换为 Java Date 对象 String date 1081157732 DateFormat df
  • Java 中的连接路径

    In Python我可以连接两条路径os path join os path join foo bar gt foo bar 我正在尝试在 Java 中实现相同的目标 而不用担心是否OS is Unix Solaris or Windows
  • Java 执行器和长寿命线程

    我继承了一些使用 Executors newFixedThreadPool 4 的代码运行 4 个长寿命线程来完成应用程序的所有工作 这是推荐的吗 我读过Java 并发实践 https rads stackoverflow com amzn
  • Spring Data MongoDB 和批量更新

    我正在使用 Spring Data MongoDB 并且想要执行批量更新 就像此处描述的那样 http docs mongodb org manual reference method Bulk find update Bulk find
  • Bipush 在 JVM 中如何工作?

    我知道 iload 接受整数 1 到 5 但是如何使用 bipush 指令扩展到更高的数字 特定整数如何与字节码一起存储 有几种不同的指令可用于推送整数常量 最小的是iconst 指令 这些只是一个字节 因为该值是在操作码本身中编码的 ic
  • 在 Spark MLlib 上使用 Java 中的 Breeze

    在尝试从Java使用MLlib时 使用微风矩阵运算的正确方法是什么 例如scala 中的乘法很简单 matrix vector 相应的功能在Java中是如何表达的 有一些方法 例如 colon times 可以通过正确的方式调用 breez
  • Selenium Webdriver - 单击多个下拉菜单时出现陈旧元素异常,而 HTML DOM 不会更改

    我尝试自动化一个场景 其中条件是我必须从下拉列表中选择一个选项 然后它旁边有另一个下拉列表 我必须单击下一个下拉列表中的一个选项才能启用按钮 我尝试使用代码 但它仅单击第一个选项 并显示错误为过时的元素引用 元素未附加到页面文档 请帮忙 如
  • ImageIO.read(...) - 非常慢,有更好的方法吗?

    我正在加载大量将在我的应用程序中使用的图标 我计划在服务器启动时从 jar 中加载所有这些 然而 由于数百张图像加起来刚刚超过 9MB 执行此任务仍然需要 30 秒多的时间 我现在正在一个单独的线程中执行此操作 但这让我想知道我是否在代码中

随机推荐

  • 如何在 Visual Studio 2010 中将 .cs 文件折叠到 .xaml 文件内?

    如何将我的 ViewModel 文件 cs 文件 折叠到其相应的 View 文件 xaml 文件 文件中 如图所示 我不知道在 Visual Studio 中执行此操作的方法 但您可以在文本编辑器中编辑 csproj 文件 你应该找到这样的
  • 以编程方式快速获取图像文件类型

    我正在从解析中下载带有 PNG 和 JPEG 文件的图像 当图像下载到应用程序时 我需要确定文件类型是什么 以便我可以相应地处理图像 查看了 uiimageview 的 API 并进行了搜索 但无法在 swift 中找到任何解决方案 任何意
  • 具有多个键和关联值的可编码枚举

    我已经看到了有关当所有情况都有关联值时如何使枚举符合 Codable 的答案 但我不清楚如何混合具有和不具有关联值的情况的枚举 如何针对给定情况使用同一密钥的多个变体 如何对没有关联值的情况进行编码 解码 enum EmployeeClas
  • 使用属性调用方法

    我有各种单独的方法 它们都需要执行相同的功能 然后才能继续自己的实现 现在我可以在每个方法中实现这些功能 但我想知道是否有一种方法可以利用attributes去做这个 作为一个非常简单的示例 所有网络调用都必须检查网络连接 public v
  • 即使我清除缓存,.gitignore 也不起作用

    在将初始提交推送到 git 存储库后 我犯了创建 gitignore 文件的错误 我的 gitignore 非常简单 它只包含 node modules 我尝试过以下方法 git rm cached rf git add git commi
  • 如何将按“Enter”键与单击按钮关联起来?

    在我的 swing 程序中 我有一个 JTextField 和一个 JButton 我希望 一旦用户按下 enter 键 JButton 的 actionListener 就会运行 我该怎么做 提前致谢 JRootPane 有一个方法 se
  • Python - 列表字典

    制作列表字典的最佳方法是什么 例如 如果我有列表列表1 列表2并想做一本字典my dict像那样 my dict list1 list1 list2 list2 我发现了this https stackoverflow com questi
  • docker-compose up 不重新创建容器

    我创建了两个容器 一个是 oracle db 一个是 apache tomcat 我使用以下 docker compose 运行它们 version 3 4 services tomcat build tomcat ports 8888 8
  • 运行 StarTeam 2008 Release 2 客户端时出现“无法创建 Java 虚拟机”错误

    为什么 StarTeam 2008 Release 2 Client 没有在我的计算机上正确安装 每当我尝试启动它时 都会收到 无法创建 Java 虚拟机 错误 正如我之前所想 这不是定位 Java 虚拟机的问题 而是内存分配问题 在 St
  • Facebook 聊天机器人 - 如何测试欢迎消息?

    我的聊天机器人运行良好 但我在调试欢迎消息功能时遇到了麻烦 因为它仅在发起对话时显示 尽管我很确定在同事手机上尝试过它不起作用 如何重置我的聊天 以便将我视为与之交互的新用户 这是我目前受欢迎的 PHP 脚本
  • 如果使用 Android 后台服务,Flutter 会停留在“等待观测站端口可用”

    我一直在尝试为 Flutter 编写平台代码来启动后台服务 在这里 我使用了一个最小的例子 没有actual所做的工作表明该应用程序根本无法运行 实际的flutter代码根本没有修改 MainActivity java public cla
  • AnyLogic 计算机处理器需要建议 - 单核速度与核心数量?

    我在一台老式电脑上进行建模 最近获得了一些实验室资金来购买一台新的建模计算机 处理器的选择让我感到困惑 为了获得最佳的 AnyLogic 仿真建模 我应该专注于最大化单核速度还是最大化处理器核心数量 另外 高端显卡有帮助吗 我从我的工程同事
  • 如何使用 Java 或 CMD 获取 PC 硬件信息

    我正在创建一个 Java 桌面应用程序 用于报告 Windows 计算机 XP Vista 和 W7 的性能和统计信息 使用 Java 或命令行如何获取以下信息 制造商 戴尔 惠普 模数 处理器类型 处理器尺寸 系统类型 储存空间 内存总计
  • Android - 使滑动抽屉从左向右滑动

    我已经使用下面的 XML 布局在我的应用程序中实现了 滑动抽屉 我从 androidpeople com 得到这个例子
  • 使用 C# 识别 CPU 架构类型

    我想检查用户运行的是哪个CPU架构 是吗 i386 或 X64 或 AMD64 我想用 C 来做 我知道我可以尝试 WMI 或注册表 除了这两种还有其他办法吗 我的项目目标是 NET 2 0 让我来到这里的是检查 32 位与 64 位操作系
  • Python/Firefox 无头抓取脚本中的“无法解码来自木偶的响应”消息

    美好的一天 我在这里和谷歌上进行了大量搜索 但尚未找到解决此问题的解决方案 场景是 我有一个 Python 脚本 2 7 它循环访问多个 URL 例如 想想亚马逊页面 抓取评论 每个页面都有相同的 HTML 布局 只是抓取不同的信息 我将
  • 如何在 webdriverio 中结束浏览器会话来关闭浏览器?

    我有以下测试用例 在wdio conf js afterTest async function test context error result duration passed retries await browser end Erro
  • 如何通过名称调用私有函数

    如何通过名称调用函数 实际上我知道如何按名称调用函数 但我找不到所需的范围 所以现在我必须使用this get 小部件名称 它适用于 get publishedBuildsWidget1但我想让函数成为私有函数 所以我想按名称调用 get
  • 使用 jQuery 和 Ajax 提交 Rails 表单

    编辑 想通了所以问一个相关的问题 这是我的 JavaScript jQuery ajaxSetup beforeSend function xhr xhr setRequestHeader Accept text javascript jQ
  • 更改子类的超类实例变量的值

    我发现我可以在子类中这样做 ParentClass variable value 但有人告诉我 最好使用 get set 方法 而不是直接访问类外部的变量 尽管这是当我在另一个类中有该类的实例时 而不是子类和超类 那么是否有更好的方法来做到