考慮下面的代碼:繼承:instanceof運算符混淆
class B
{
int j =100;
}
class A extends B
{
int i=10;
}
public class Test
{
public static void main(String[] args)
{
A obj =new A();
System.out.println(obj);
B obj1 =obj;
System.out.println(obj1); // here i am confused
if(obj1 instanceof A)
{
System.out.println("yes"); //here i am confused
}
}
}
這裏的輸出爲:
[email protected]
[email protected]
yes
現在obj1
是B類的一個實例,它是父類,那麼,爲什麼toString()
顯示它是A的對象?另外,instanceof運算符如何顯示它是類A的實例?
OBJ1仍然是由類生成對象Obj,A – Outsider
你應該問自己的是:什麼是'instanceof'的目的,如果在這種情況下評估,以虛假的? – Radiodef