A_bieemo 2021-11-26 12:23 采纳率: 50%
浏览 35

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

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

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);
    }

}

运行结果及报错内容

走了十公里
我是一个人

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

3条回答 默认 最新

  • 小赖coder 2021-11-26 13:32
    关注

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

    评论

报告相同问题?

问题事件

  • 修改了问题 11月26日
  • 创建了问题 11月26日