0

我有一个关于 Java 中的继承的问题,我有 3 个类,Parent Child1 和 Child2。Child1 和 Child2 都是父方法的子类。

Class Parent
{
   private int money;
   public void setMoney(int a)
   {
    money = a;
   }

   public int getMoney()
   {
   return money;
   }
    public int calculate()
    {
        int x;
        x = getMoney +100;

    }
}

 

Child1 将接受来自用户的值并使用父类的 setMoney 方法

 

import java.io.*;
import java.util.*;
Class Child1 extends Parent
{
   public void displayinfo()
   {
       int a;
       Scanner in = new Scanner(System.in);
       Child2 roll = new Child2();
       a = in.nextInt();
       super.setMoney(a);
       System.out.println(super.calculate());
       System.out.println(roll.calculate());
   }
}

我的问题是 Child2 如何能够访问 child1 的输入值?我希望我的孩子 2 向超类添加一个额外的操作,但我从 child2 得到 0,就好像这些值一开始没有被初始化一样

class Child2 extends Parent
{
    public int calculate()
    {
        int y = super.calculate() + 100
        return y;
    }
}

我正在从 main 调用 Child1

class test extends Pay
{

    public static void main(String arg[]) 
    {
    Child1 a = new Child1();
    a.displayinfo();
    }
  }

编辑:复制意大利面是真实的

4

1 回答 1

0

这里的问题是您有两个不共享任何状态的实例。因此,尽管它们都是 Parent 的子类,但每个实例都有自己的 field 值money。当您的类型实例Child1调用super.setMoney(a)它时,它会更新自己的内部状态。type 的对象Child2仍然有它自己的状态,只有当你调用roll.setMoney(a).

于 2015-12-15T12:21:46.757 回答