java - 子类需要访问抽象父类(super class)的私有(private)属性

标签 java abstract-class private

我有一个抽象java类,它实现了它的几个方法,但没有实现其他方法。在它实现的方法中,它使用私有(private)属性变量。使用的变量也需要在子类中使用。

据我所知,我的选择是:

  • 在子类和父类(super class)中都声明私有(private)变量
  • 将抽象类中当前实现的方法的实现推迟到子类中

还有其他选择吗?哪一个更有意义?为什么?

最佳答案

问题是你想如何维护你的状态:如果不关心值的存储位置,你可以在另一个成员的“顶部”添加一个 private 成员并使用那个而不是父类(super class)中的那个。如果您希望父类(super class)中的某些方法和子类中的某些方法访问相同的状态,则需要更改可见性:

您可以将变量声明为 protected ,使其在子类中可访问,或者实现访问器方法,甚至将其设为公共(public)

关于java - 子类需要访问抽象父类(super class)的私有(private)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4501678/

相关文章:

与语言环境相关的 Java DynamicReports 格式日期

java - 如何修复 Android-Studio 中 Uri-Path 的 "FileNotFoundException"(没有此类文件或目录)错误?

c# - 派生类中属性的可见性 (C#)

fortran - 是否可以在 Fortran 2003 中的类型内实现 "abstract"变量?

c++ - 在模板化类中初始化私有(private)成员变量 vector

java - 如何让 DateTimeFormat 与 Spring MVC 一起工作?

java - 什么在 Windows 上将命令行参数解析为 args[]?

java - 派生类可以调用它们的抽象父类的构造函数,调用它们尚未实现的方法吗?

java - 为什么允许访问另一个对象的私有(private)字段?

Javascript 公共(public)/私有(private)变量