Inheritance in Java – something I can’t understand
•
Java
I have questions about inheritance in Java, which I can't understand:
I have two classes:
public class C
{
public void foo(D d)
{
System.out.println("cd");
}
}
public class D extends C
{
public void foo(C c)
{
System.out.println("dc");
}
public void foo(D d)
{
System.out.println("dd");
}
}
Main:
public static void main(String[] args)
{
C cd = new D();
D dd = (D)cd;
}
What is the type of each CD and DD? Why?
Solution
There are two different types involved:
>Type of variable; > The type of object referenced by the variable
The type of a variable is independent of the type of object it currently refers to – and vice versa, the type of object is independent of the type of variable accessing it Therefore, when you assign an object to a different variable, its type is not affected
So,
>The type of variable CD is C; > The type of object it references is d
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码
