Java – inheritance and ‘instanceof’ test results

I'm studying 'instanceof' Java, but I can't clearly understand 'instanceof'. I think the following answers are true and false, but the results are true Can you explain why this result occurs? As far as I know, when a is the child of B (parents), the example of B is' false ', but the result is different from my idea

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);
    }
}

Solution

Manifesto= value

You declare your car as a car, but the value is fireengine

Instanceof works based on values, not variable declarations!!!

Shortening may help to understand:

System.out.println(new FireEngine() instanceof FireEngine);  // true
System.out.println(new FireEngine() instanceof Car);         // true
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
分享
二维码
< <上一篇
下一篇>>