在Java中继承静态变量

在Java中继承静态变量,java,inheritance,static,polymorphism,static-variables,Java,Inheritance,Static,Polymorphism,Static Variables,我想进行以下设置: abstract class Parent { public static String ACONSTANT; // I'd use abstract here if it was allowed // Other stuff follows } class Child extends Parent { public static String ACONSTANT = "some value"; // etc } 这在java中可能吗?

我想进行以下设置:

abstract class Parent {
    public static String ACONSTANT; // I'd use abstract here if it was allowed

    // Other stuff follows
}

class Child extends Parent {
    public static String ACONSTANT = "some value";

    // etc
}
这在java中可能吗?怎么用?如果可以避免的话,我宁愿不使用实例变量/方法

谢谢

编辑:


常量是数据库表的名称。每个子对象都是一个迷你ORM。

您不能完全按照自己的意愿执行。也许可以接受的折衷办法是:

abstract class Parent {
    public abstract String getACONSTANT();
}

class Child extends Parent {
    public static final String ACONSTANT = "some value";
    public String getACONSTANT() { return ACONSTANT; }
}

在这种情况下,您必须记住,在java中,您不能过度评价静态方法。所发生的事情是把东西藏起来

根据您输入的代码,如果您执行以下操作,答案将为空

Parent.ACONSTANT == null ; ==> true

Parent p = new Parent(); p.ACONSTANT == null ; ==> true

Parent c = new Child(); c.ACONSTANT == null ; ==> true
只要使用父对象作为引用类型,常量将为null

让我们做点像这样的事情

 Child c = new Child();
 c.ACONSTANT = "Hi";
 Parent p = c;
 System.out.println(p.ACONSTANT);

输出将为空。

离题,但如果要避免面向对象的部分,为什么要使用面向对象编程语言呢?但你想实现什么?不为class-Child创建obj?创建static同样昂贵。你能举个例子说明如何使用它吗?我有我的理由,但在公共论坛上不受欢迎。这个程序很小,这个数据不太可能改变,或者需要一个特殊的访问器,我来自另一种语言,感觉更自然。我并不是想避开对象,只是想把KISS应用到我的程序设计中,让单词倒计时。我有很多东西,相信我,可能吗?是的,但肯定有更好的方法。提供更多的上下文,你会得到更好的答案,同时也会学到一些东西哇,很酷的例子。感谢您花时间发布:-)+1如果有很多子类呢?有没有比复制粘贴相同的getACONSTANT()方法到每个子类中更干净的方法?@ChiuBaka-创建一个适配器类,即实现该方法然后扩展适配器类的适配器类。