Odd java assignment rules for final
<p>I've come across some odd behavior in assignment of final variables. You can assign a final varible in a constructor to initialize it, which makes sense. However you can't do the same in a subclass, even if the final variable is a member of the subclass -</p>

<pre><code>public class FinalTest {
    public final String name;

    public FinalTest()
    {
        name = "FinalTest";
    }

    public static class FinalTestSubclass extends FinalTest {
        public FinalTestSubclass()
        {
            name = "FinalTestSubclass"; //&lt;---- this won't compile, assignment to final variable.
        }
    }
}
</code></pre>

<p>Can someone think of a good reason why this should/would work this way?</p>
