子类对象调用继承父类方法的问题。

问题遇到的现象和发生背景

s对象去调用继承的walk方法,为什么walk方法里的方法是父类的show方法,而不是子类新定义的show方法。

问题相关代码,请勿粘贴截图

父类

package sgg;

public class Person {
    String name;
    int age;
    public Person() {
        
    }
    public Person(String name,int age) {
        this.name=name;
        this.age=age;
    }
    public void walk(int distance) {
        System.out.println("走了"+distance+"公里");
        show();
        
    }
    public void eat() {
        System.out.println("人吃饭");
    }
    private void show() {
        System.out.println("我是一个人");
    }
}


子类

package sgg;

public class Student extends Person {
    String major;
    
    public Student() {
        
    }
    
    public Student(String major) {
        this.major=major;
    }
    
    public void eat() {
        System.out.println("学生应该吃有营养的食物");
    }
    
    public void study() {
        System.out.println("学生应该好好学习");
    }
    
    public void show() {
        System.out.println("我是一个学生");
    }
}

测试类


package sgg;

public class test_example {
    public static void main(String[] args) {
        Student s=new Student();
        s.walk(10);
    }

}

运行结果及报错内容

走了十公里
我是一个人

我的解答思路和尝试过的方法
我想要达到的结果

你父类的show方法是private,私有的

你如果想用自己的方法,那你要继承父类的意义何在,
你也可以用抽象类,这样继承还可以重写方法

你的子类的show方法与父类的show方法访问控制等级不一样,不属于重写,所以是调用父类的show方法