任何人都可以告诉我这两个对象创建之间的区别
方法1:
Superclass ob = new Childclass();
方法2:
Childclass ob = new Shildclass();
两个对象之间有什么区别以及原因。
谢谢, Vijesh
答案 0 :(得分:1)
区别在于:
Superclass a = new ChildClass();
被声明为类型超类实例,这意味着它仅限于超类的成员。
ChildClass c = new ChildClass();
是ChildClass类型,可以访问ChildClass的所有成员以及从Superclass继承的成员。
答案 1 :(得分:0)
来自Difference Between Static Binding And Dynamic Binding In Java
第一个称为动态绑定的是在运行时发生的。它也称为后期绑定,因为当程序实际运行时会发生绑定。
在运行时,实际对象用于绑定。例如,对于下面图片中的“a1.method()”
调用,将调用‘a1’
指向的实际对象的method()。对于a2.method()
调用,将调用method()
指向的实际对象的‘a2’
。这种类型的绑定称为动态绑定。
答案 2 :(得分:0)
对象创作是相同的。在这两种情况下,您都要创建Childclass
。
这两个片段之间的区别在于您在创建对象后使用对象引用。
通过将对象引用分配给Superclass
类型的变量,您暂时"隐藏"对象Childclass
的某些方面。但该对象仍然是Childclass
的一个实例,如下所示:
Superclass ob = new Childclass();
System.out.println(ob.getClass()); // prints "Childclass"