我有一个关于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
调用Child1class 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)
时才会改变。