如果我导入的类与我要导入的类位于同一个包中,我是否应该导入java类(我正在尝试扩展前一类,savingsAccount和SpecialSavings都在同一个帐户中)?此外,我试图从子类访问我的父类中的私有变量,但它不会让我。这是我的代码:
package finance;
import finance.SavingsAccount;
public class SpecialSavings extends SavingsAccount
{
public SpecialSavings(double savingsBalance)
{
super.setBalance(savingsBalance);
}
if (super.getBalance() > 10000)
{
modifyInterestRate(10);
}
}
以下是SavingsAccount的代码:
package finance;
public class SavingsAccount
{
private static double annualInterestRate;
private double savingsBalance;//indicates the amount the saver currently has on deposit
public SavingsAccount(double savingsBalance)//default constructor
{
this.savingsBalance = savingsBalance;
}
public double calculateMonthlyInterest()
{
savingsBalance += savingsBalance * ((annualInterestRate/100)/12);
return savingsBalance;
}
public static void modifyInterestRate(double newValue)
{
annualInterestRate = newValue;
}
/*-------------getters and setters------------------------*/
public void setBalance(double newValue)
{
savingsBalance = newValue;
}
public double getBalance()
{
return savingsBalance;
}
}
答案 0 :(得分:1)
protected
,而不是private
。< / LI>
醇>
另外,你试图在任何区域之外调用super.getBalance()
,这是非法的,你应该把它移到你的某些方法中。对于示例:
public void modify()
{
if (super.getBalance() > 10000)
{
modifyInterestRate(10);
}
}
答案 1 :(得分:0)
没有。命名空间中的所有类都是可见的和可用的,无需显式导入它们。
答案 2 :(得分:0)
要访问super class
变量,请使用protected
,但更好的解决方案是为protected setter/getters
实例变量设置private
并改为使用它们。
答案 3 :(得分:0)
有3 access modifier
4 access control
当您在相同的套餐中时,无需进口。
并且您想要从其子类访问父类私有成员,非法。 如果子类位于同一个包中,则可以将要访问的Parent类的成员设置为Default (即不写入任何访问修饰符),或者如果子类位于父包,然后使用受保护或公开。