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

2024-11-17 16:42:41
推荐回答(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方法体现了多态