[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[List Home]
|
RE: [aspectj-users] One target for intertype declarations
|
- From: Eric Bodden <eric@xxxxxxxxx>
- Date: Wed, 24 Nov 2004 07:59:51 +0100
- Delivered-to: aspectj-users@eclipse.org
- Organization: RWTH Aachen University
- Thread-index: AcTR4fh8HRO6XFOJSMSef10taFEIIQAEEi7g
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Nicholas Lesiecki wrote:
>> Whoops, sorry, missed the modifier. Of course you are right. I
>> also consider that as a possible place for improvement.
>
> Actually, there would be two copies of the field even if the
> modifier were "public". Variables, unlike methods, are not
> overridden. They can be shadowed, but you can still access both
> copies on a given
> object.
Interesting. That's really new to me. I always thought inheritance
would work the normal way for fields as well. So how would one access
a field that is declared in a superclass when you have the very same
declaration in the subclass as well (a shadow)? By a cast?
class Super { public Type field; }
class Sub extends super { public Type field; }
class Foo {
void someMethod {
Super s = new Sub();
//is s.field here the field of Sub or Super?
Sub sub = (Sub) s;
//is s.field here the field of Sub or Super?
}
}
Now *I* am confused ;-)
Eric
- --
Eric Bodden
Chair I2 for Programming Languages and Program Analysis
RWTH Aachen University
-----BEGIN PGP SIGNATURE-----
Version: PGP 8.0.3
iQA/AwUBQaQxZswiFCm7RlWCEQJCQgCeP6BpBQucceA4Q0w3ztf4RfzzFhQAnRTI
dYZmicZ8dhZuyLroWLGUWETV
=uEXG
-----END PGP SIGNATURE-----