我有一个关于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;
}
}
我从主
调用Child1class test extends Pay
{
public static void main(String arg[])
{
Child1 a = new Child1();
a.displayinfo();
}
}
编辑:复制意大利面是真的
答案 0 :(得分:0)
这里的问题是你有两个不共享任何状态的实例。因此,尽管它们都是Parent的子类,但每个实例都有自己的字段money
的值。当您的Child1
类型的实例调用super.setMoney(a)
时,它会更新自己的内部状态。 Child2
类型的对象仍然有自己的状态,只有在您调用roll.setMoney(a)
时才会更改。