子类、继承和变异体/访问器的交互



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

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

这里的问题是您有两个不共享任何状态的实例。所以,尽管它们都是Parent的子类,每个实例对于字段money都有自己的值。当类型Child1的实例调用super.setMoney(a)时,它会更新自己的内部状态。Child2类型的对象仍然有自己的状态,只有在调用roll.setMoney(a)时才会改变。

相关内容

最新更新