在某个程序中,Parent 类是子类的 super 类。以下内容有什么区别。
Parent obj1=new Parent();
Parent obj2=new Child();
Child obj3=new Child();
最佳答案
parent obj1=newparent();
这里引用变量(obj1)是父类型,对象也是如此在堆上创建- 您可以调用父类的所有且仅方法
parent obj2=new child();
这里引用变量(obj2)是父类型,在堆上创建的对象(新子对象)是子类型- 当您调用 obj2 上的方法时,将从子类中调用该方法,如果在其中重载,否则将从父类中调用该方法。
child obj3=new child();
这与第一点相同。这里引用变量和对象都是子类型,与父类型无关
了解更多信息 8.4. Method Declarations -> Inheritance, Overriding, and Hiding和 9.4. Abstract Method Declarations -> Inheritance and Overriding
关于Java继承和对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26709320/