Lyon92 2019-07-10 02:14 采纳率: 0%
浏览 1560

JAVA 中 子类继承父类方法后 无法获取想要获得的父类参数

在代码中
创造了一个父类father的实例f
并为f的number属性赋值。
创造一个子类child的实例c
获得f的number属性
继承father类的show方法时本该显示c的number属性的地方显示了father类属性的初始值。
但若直接重写方法,C的number无异常。

想请教这个代码中的super.show()是否是我用错了

以下为主代码

import java.util.Scanner;

public class text {
    public static void main(String[] args) {
        father f=new father();
        Scanner input=new Scanner(System.in);
        System.out.println("输入number:");
        int num=input.nextInt();
        f.setNumber(num);
        child c=new child(f);
        c.showChild();
        f.show();

    }

}

以下为father类代码


public class father {
    private int number = 30;

    public void setNumber(int input) {
        this.number = input;
    }

    public int getNumber(father a) {
        return a.number; }

    public void show() {
        System.out.println("这是father对象的number:" + number);
    }
}

以下为child类代码


public class child extends father {
    private int number;

    public child() {
    }

    public child(father f) {
        System.out.println(f.getNumber(f));
        this.number = f.getNumber(f);
    }


      public void setNumber(int input) { this.number=input; } public int
      getNumber(child c) { return c.number; }


    public void showChild() {
        super.show();
        System.out.println("这是child对象的number:" + number);
    }
}

以下为运行结果:
输入number:
11
11
这是father对象的number:30 //30为father类的初始值
这是child对象的number:11
这是father对象的number:11

以下为预想中的运行结果
输入number:
11
11
这是father对象的number:11
这是child对象的number:11
这是father对象的number:11

  • 写回答

4条回答 默认 最新

  • 毕小宝 博客专家认证 2019-07-10 09:25
    关注

    super.show() 本质上就是当前类的方法,因为当前类继承了父类的方法,但是方法输出的变量是当前类的成员变量。
    成员变量是私有的,父类的私有成员变量不能被子类访问到的。

    子类继承了父类的方法,等价于show()就是子类自己的方法,在自己的方法中打印的当然是自己的成员变量了。

    评论

报告相同问题?

悬赏问题

  • ¥15 求帮我调试一下freefem代码
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图