Why does this() and super() have to be the first statement in a	constructor?
    Daniel Yokomizo 
    daniel.yokomizo at gmail.com
       
    Fri Oct  7 16:39:51 PDT 2011
    
    
  
On Oct 7, 2011 1:58 PM, "Paul Benedict" <pbenedict at apache.org> wrote:
>
> It's a compiler error because the superclass is guaranteed to be
> initialized first before the subclass.
Not guaranteed by the JVM, as in anonymous inner classes.
> On Fri, Oct 7, 2011 at 11:51 AM, Vimil Saju <vimilsaju at yahoo.com> wrote:
> > If you have subclass then java requires that this() or super has to be
first statement in the constructor of the subclass.
> > Here is an example
> >
> > publicclassMyClass{
> >         publicMyClass(intx){}
> > }
> >
> > publicclassMySubClassextendsMyClass{
> >         publicMySubClass(inta,intb){
> >                 intc =a +b;
> >                 super(c); // COMPILE ERROR
> >         }
> > }The above compilation error can be resolved by rewriting the code in
the constructor as follows
> >
> > publicclassMySubClassextendsMyClass{
> >         publicMySubClass(inta,intb){
> >                 super(a + b);
> >         }
> > }Can't the Java compiler detect that in the previous code there was no
access to the instance fields or methods and therefore allow the code to
compile without any error.
> >
> >
>
    
    
More information about the coin-dev
mailing list