A test = new B()和B test = new B()的区别?
楼主A和B给的关系不确定啊。
就你的提问想必A和B的关系有两种情况:
1,A是一个类,B类继承了A类
2,A是一个借口,B类实现了A接口
B test = new B();
在栈内存中创建了一个B类型的引用变量test,
在堆内存中创建了一个B类对象,
并将堆内存中B类对象的首地址值付给了栈内存中的B类型的变量test。
A test = new B();
在栈内存中创建了一个A类型的引用变量test,
在堆内存中创建了一个B类对象,
并将堆内存中B类对象的首地址值付给了栈内存中的A类型的变量test。
是父类引用指向了子类对象,属于多态。 |