我有三节课。

父母

package sample;

public class Parent {

}


儿童

package sample;

public class Child extends Parent {

}


孙子

package sample;

public class GrandChild extends Child {

}


然后运行以下代码:

package sample;

public class Main {

    static Parent parent;

    public static void main(String[] args) {
        parent = new GrandChild();

        GrandChild grandChild = getGrandChild();
        GrandChild grandChild2 = getGrandChild();
        System.out.println(grandChild == grandChild2);
    }

    private static GrandChild getGrandChild() {
        return (GrandChild) parent;
    }

}


是否可以在控制台中看到false?我总能看到真实的。

最佳答案

强制转换不会更改所指向的对象。

但是,您不应依赖代码中的==运算符在两个对象之间进行比较(请改用equals())。

您是否需要某种特殊的原因?还是只是好奇?

08-04 22:19