java中方法覆盖问题

建立了三个类 ,分别为Person:父类, Male:子类, PersonTest:测试类;
Male 继承Person
在PersonTest中的main方法建立一个Male对象,并引用里面的一个方法shopping() 。图片为

img


shopping()中方法体为

img

Person的类为

img

Male的类为

img


输出结果为

img


,this.getName()调用的是子类Male的中getName()方法,
super.getName()调用的是父类的getName()方法
本打算用父类中的setName()为父类中的name赋值,却发现setName()调用的是子类的set方法,这是怎么回事

因为person类的setName方法被子类重写了
把person类的this.setName(nane)改成this.name=name就行