What is subtyping in Java? For any class or interface C:
-
C subtype C (reflexive)
-
C subtype Object (top)
-
if C subtype D
and D subtype E then
C subtype E (transitive)
-
if C extends D
then C subtype D
(extends)
-
if C implements D
then C subtype D
(implements)
-
if C subtype D
then C[] subtype D[]
(array)
What is subclassing?