> Hi If I have a class A that extends a superclass BB and implements
> another CC then we can
> say that A "is a" BB and "is a" CC ????
Yes.
> so when we make
>
> BB = A
>
> CC = A
Your syntax here is a bit sloppy because you treat class names like
variable names. You probably mean something like:
A a = new A();
BB b = a;
CC c = a;
Then it is all well and the compiler will compile it without error.
> are both equals?

Signature
Thomas
> Hi If I have a class A that extends a superclass BB and implements
> another CC then we can
> say that A "is a" BB and "is a" CC ????
Terminology: A class cannot "implement" another class;
it can only implement interfaces. BB must be a class, but
CC must be an interface, not a class.
Having said that, then yes: A "is a" BB and A "is a" CC.
An Integer "is a" Number and also "is a" Comparable.
> so when we make
>
[quoted text clipped - 3 lines]
>
> are both equals?
Well, this isn't quite right. A and BB are class names
and CC is an interface name, but you can only work with variables
that refer to instances of these things, not with the things
themselves. You need to flesh it out a bit, like
A my_A = new A();
BB my_BB = my_A;
CC my_CC = my_A;
... and all is well, and all three my_* variables refer to the
same instance of A.

Signature
Eric Sosman
esosman@acm-dot-org.invalid