我正在研究'instanceof'java,但我无法清楚地理解'instanceof',我认为下面的答案是真的和假的,但结果都是真的.你能解释一下为什么会出现这种结果 据我所知,当A是B(父母)的孩子,B的实例是'假'但结果与我的想法不同.
class Car{
String color;
int door;
}
class FireEngine extends Car{
void water(){
System.out.println("water");
}
}
public class Operator {
public static void main(String[] args) {
Car car = new FireEngine();
FireEngine fireCar = new FireEngine();
System.out.println(car instanceof FireEngine);
System.out.println(fireCar instanceof Car);
}
}
Run Code Online (Sandbox Code Playgroud)
你声明car为汽车,但价值是一个FireEngine.
instanceof基于值工作,而不是基于其变量的声明 !!!
缩短可能有助于理解:
System.out.println(new FireEngine() instanceof FireEngine); // true
System.out.println(new FireEngine() instanceof Car); // true
Run Code Online (Sandbox Code Playgroud)