楼上说的对啊,就是 对象时引用类型,new 一个新对象则在堆内存分配一个内存空间,你的代码中:- public static void main(String args[]) {
- B b = new B();
- b.fun1();
- A a = b;
- a.fun1();
- }
复制代码 只有 B b = new B(); 则在内存中分配了一个内存空间,b对象是指向 new B() 的内存地址
而 A a = b; 此处把b对象指向的内存地址分配给了a,所以a对象是指向的也是 new B() 的内存地址,
所以最后两个输出结果就是一样的了
|
|