上转型对象:假设B类是A类的子类或间接子类,当用子类B创建一个对象,并把这个对象的引用放到A类的对象中时,如:A a;
a=new B();
或A a;
B b=new B();
a=b;请问:上面2个不同的实现的本质区别是什么?当 a=new B();时发生了什么,B b=new B();a=b;时又发生了什么?感谢大大。
a=new B();
或A a;
B b=new B();
a=b;请问:上面2个不同的实现的本质区别是什么?当 a=new B();时发生了什么,B b=new B();a=b;时又发生了什么?感谢大大。
创建一个 B 对象,并赋给变量 a。因为 B 是 A 的子类,所以任何一个 B 对象也可以看做是 A 对象。就像正方形是矩形的子类,所以任何一个正方形都可以看做是一个矩形。a=b;
将一个 B 对象赋给变量 a。道理同上。
应该说把A类的引用指向B,因为在上述2个例子并没有产生A类的对象
B b=new B();
a=b; 上面的语句是生成一个b对象 然后赋给a对象 如果不讨论b对象的垃圾回收问题,那么此时对象b是存在于内存的吧.A a;
a=new B(); 而上面这段语句是直接生成了一个无名的B类对象,然后赋给a对象,请问这个无名的B类对象是什么,赋值以后,存在于内存么?谢谢。