首页 > 解决方案 > 在 Java 中使用带有继承的最终列表

问题描述

我是 Java 新手,我正在考虑一种特殊情况,在这种情况下,我们有一个超类和两个子类。我需要在每个子类中存储一个静态的最终字符串 ArrayList,但由于它们是 2 个字符串的 ArrayList,我正在考虑将它们移到超类上(显然制作一个 ArrayList)以避免重复并让子类在构造函数中分配它们的常量值。我可以做这样的事情吗?我遇到了一些困难,因为子类构造函数的第一条指令必须是超类构造函数,所以我不能在构造函数中声明一个本地 ArrayList,然后将它交给超类构造函数(所以我有义务将这个 ArrayList 存储在子类中,我' m 基本上在起点)。我能做些什么来解决这个问题?

标签: javainheritanceconstructorstaticfinal

解决方案


不,你不能做这样的事情。当你开始谈论static任何关于子类和超类的讨论时,你就会消失在窗外。要么完全放弃这个概念,static要么放弃让你的子类和超类共享它的所有希望。(提示:下降static是要走的路。)

OP澄清后编辑:你需要做的是getCities()在你的超类中声明一个抽象方法,然后在每个子类中实现这个方法。通过此方法,每个子类将返回其自己的静态城市列表。


推荐阅读