digitalmars.D - inheritance feature ot bug?
- Ant (68/68) Sep 12 2004 I think we discussed this before.
I think we discussed this before.
it's not cleary documented.
it's not how java does it.
the following will compile and run.
the method that gets called is the method in A.
class A
{
public void foo()
{
printf("A.foo \n" );
}
}
class B : A
{
private void foo()
{
printf("B.foo\n" );
}
}
void main()
{
A a = new B();
a.foo();
}
outputs:
A.foo
if the method B.foo is public the output is
B.foo
now we add class C
and the result is clearly... strange
class A
{
public void foo()
{
printf("A.foo \n" );
}
}
class B : A
{
private void foo()
{
printf("B.foo\n" );
}
}
class C : B
{
public void foo()
{
super.foo();
printf("C.foo \n" );
}
}
void main()
{
A a = new C();
a.foo();
}
outputs:
B.foo
C.foo
Ant
Sep 12 2004








Ant <duitoolkit yahoo.ca>