Override class variable/method on inherited classes
<p>I've defined a class, and I'd like to have a class method (or variable, I don't really care) which needs to be overriden by each inherited class. My best approaches have been unsuccessful:</p>

<p><code>public abstract String getHumanString();</code>, as abstract methods can't be static</p>

<p><code>public static String getHumanString();</code>, as static methods can only be hidden, not overriden.</p>

<p>I don't know if there is another trick I could use. I could also be happy to automatically define <code>getHumanString()</code> by myself on the parent class with something like humanize(<code>class.getClass().getName()</code>) (I'd just make <code>getName()</code> look more beautiful, according to my needs), <code>getName()</code> is not accessible on static methods. So, to sum up, my question is:</p>

<p><strong>1. Can I have a static method/variable which could be edited on subclasses?</strong></p>

<p>OR, as another valid solution:</p>

<p><strong>2. Can I create a static method that plays with its own class name?</strong></p>

<p>Thanks in advance.</p>

<p><strong>EDIT:</strong></p>

<p>Imagine this situation (I'll skip useless lines, as I'm directly writing code here):</p>

<pre><code>class ParentClass {
    public static (or whatever) String getHumanString() {
        return "My Parent Class";
    }

    public static showMyInfo() {
        System.out.println(getHumanString());
    }
}

class ChildClass {
    @Override
    public static (or whatever) String getHumanString() {
        return "My Child Class";
    }
}
</code></pre>

<p>...</p>

<pre><code>public static void main()
{
   ChildClass.showMyInfo();
}
</code></pre>

<p>It should output (as I'd want) "My Child Class", but it actually outputs (as you all know) "My Parent Class".</p>
