Java中覆盖静态方法的替代方案

4
我想知道如何将属性适配到一个大型继承结构中的类。我想创建一个抽象静态方法,每个类都会覆盖它,但是经过快速搜索发现这似乎行不通。有什么建议吗?
我可以将其作为实例方法,但它确实是一个类级别的规范。
提前感谢您。

1
正如您所发现的那样,Java 中不存在静态多态性。总体目标是什么? - Oliver Charlesworth
你能详细解释一下你想用这个静态方法做什么吗?也许我们可以找到另一种解决方案。 - Tudor
更具体地说:我们正在处理一个布尔值,我需要能够针对每个类的对象进行查询。因此,我认为我已经回答了自己的问题:我应该将其作为实例方法。 - Michiel Ariens
同一类别的每个对象的值都是相同的。 - Michiel Ariens
1个回答

3
我建议你创建一个抽象方法,就像你想的那样,并让每个类都以静态变量的形式实现这个方法。
abstract class Base {
    abstract String getValue();
}

class A extends Base {

    static String aValue = "From A";

    String getValue() {
        return aValue;
    }
}

class B extends A {

    static String bValue = "From B";

    String getValue() {
        return bValue;
    }
}

每个类都需要一些额外的样板代码,而不仅仅是一个字段声明,但我认为这是无法避免的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接