如何在超类中使用私有实例变量?

时间:2017-05-15 01:30:43

标签: java inheritance subclass superclass super

我目前正在学习java类中的继承。而且我无法弄清楚为什么我不能使用变量" ID"在我的子类中使用super。我的构建者对储蓄类有什么问题?此外,我不允许将帐户中的实例变量更改为public。

     public class Account
{
private String ID;
private double balance;
private int deposits;
private int withdrawals;
private double service;

/**
 * Constructor for objects of class Account
 */
public Account(String IDNumber, double cashBalance)
{
    ID = IDNumber;
    balance = cashBalance;
    deposits = 0;
    withdrawals = 0;
    service = 0;
}

我收到错误" ID在帐户"

中拥有私人访问权限
    public class Savings extends Account
{
// instance variables - replace the example below with your own
private boolean active;

/**
 * Constructor for objects of class Savings
 */
public Savings(String IDNumber, double cashBalance)
{
    super(ID);
    super(balance);
    active = null;
}

1 个答案:

答案 0 :(得分:2)

super()调用父类的构造函数。它与该类的私有变量无关。

我认为你会这样做:

super(IDNumber, cashBalance);

这将调用父类的构造函数,并将Savings创建的相同变量传递给Account类。

请注意,在类Savings中,您将无法访问父变量。您必须为此更改protected的访问权限。 protected允许类本身和子级访问,而private只允许类本身访问。

相关问题