java - 在 Java 中使用带有继承的最终列表
问题描述
我是 Java 新手,我正在考虑一种特殊情况,在这种情况下,我们有一个超类和两个子类。我需要在每个子类中存储一个静态的最终字符串 ArrayList,但由于它们是 2 个字符串的 ArrayList,我正在考虑将它们移到超类上(显然制作一个 ArrayList)以避免重复并让子类在构造函数中分配它们的常量值。我可以做这样的事情吗?我遇到了一些困难,因为子类构造函数的第一条指令必须是超类构造函数,所以我不能在构造函数中声明一个本地 ArrayList,然后将它交给超类构造函数(所以我有义务将这个 ArrayList 存储在子类中,我' m 基本上在起点)。我能做些什么来解决这个问题?
解决方案
不,你不能做这样的事情。当你开始谈论static
任何关于子类和超类的讨论时,你就会消失在窗外。要么完全放弃这个概念,static
要么放弃让你的子类和超类共享它的所有希望。(提示:下降static
是要走的路。)
OP澄清后编辑:你需要做的是getCities()
在你的超类中声明一个抽象方法,然后在每个子类中实现这个方法。通过此方法,每个子类将返回其自己的静态城市列表。
推荐阅读
- ruby - 如何使用我的代码中使用的拆分方法生成预期的输出?
- c# - 通过整个调用堆栈轻松在异步和同步之间切换(用于调试)
- c# - 向文本文件中的现有文本添加空格和字符
- requirejs - 为“base”requirejs 配置创建命名空间别名
- cluster-analysis - 基于密度的聚类验证 (DBCV) 永远不会停止运行
- lldb - 为什么 lldb 抱怨我的类需要一个转换运算符,即使它有一个?
- mysql - 在创建表时具有具有默认值的“创建日期”列
- jboss - 如何更改 jboss 时区?Java 属性不起作用
- firebase - Firestore在更新后获取Field.increment的值而不读取文档数据
- rest - 验证 API 响应