JAVA的一点小问题,求解。本人初学 为什么以面代码的输出是0,1 而不是0,0

2024年11月17日 16:42
有5个网友回答
网友(1):

sup.getField(),你new的是子类new Sub(),并且子类Override了父类的getField()方法,当然会调用子类中的getField()方法输出1。

网友(2):

1、Supera sup=new Sub();创建了一个对象实例sup这个是父类的对象,那么他自身的值是0对不对?
2、你用的是子类的默认无参构造方法,这就是向上转型的例子
3、这时候实际上在object对象里面有两个变量,父类的为0,子类的为1

网友(3):

因为Sub继承了Supera 重写了属性field

网友(4):

函数被覆写了

网友(5):

子类重写了父类getfiled方法体现了多态