[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: maybe a semantic mistake?
On Thu, Mar 06, 2003 at 10:39:07PM -0500, Chris Pickett wrote:
> Hi,
>
> I'm confused by Feng's example ... if you call public invoke_f() from an
> instance of C, then isn't it correct for invoke_f() to call the private
> B.f() because invoke_f() is a method belonging to B and therefore should
> be able to access all private methods and variables? I suppose it comes
I think the idea is that if a method wants to call a private method in
the same class, it must use invokespecial, not invokevirtual.
> down to interpreting "this": it seems that the VM's (with the exception of
> Jikes RVM) interpret "this" to be an instance of class B whereas Feng is
> saying it should be an instance of class C ... I don't think the VM
> interpretation is necessarily wrong.
The instruction is invokevirtual. The actual type of this is C.
Following the specification gives A.f().
>
> Cheers,
> Chris