【发布时间】:2016-03-31 20:33:57
【问题描述】:
我是编程新手,这门课让我很头疼。
这是我的代码(类型基于用户输入)
public static Account CreateAccount(int type)
{
switch (type)
{
case 1:
SaveAcc savings = new SaveAcc();
break;
default:
Console.WriteLine("No such choice");
break;
}
return new Account();
}
这些是我的课程:
class Account
{
protected int balance;
protected int accountnr = 1;
protected bool credit;
public Account()
{
newNr++;
accountnr = newNr;
}
public override string ToString()
{
return "AccNr: " + Nr.ToString("G") + ", balance: " + balance.ToString("C");
}
}
class SaveAcc: Account
{
public int rate;
public SaveAcc()
{
credit = true;
rate = 0.03;
}
public override string ToString()
{
return "AccNr: " + Nr.ToString("G") + ", balance: " + balance.ToString("C") + credit.ToString();
}
}
当我创建一个 SavAcc 对象时,会调用“错误”的覆盖。我的目标是显示位于 SavAcc 继承类中的覆盖 ToString 方法提供的所有信息。我错过了什么明显的东西吗?
【问题讨论】:
-
SavAcc在哪里?SaveAcc是什么?你在哪里叫它? -
错字,SalAcc 应该是 SaveAcc @leppie
-
好的,在
case 1,你永远不会返回创建的实例。你可能是故意的。 -
阅读此ericlippert.com/2014/03/05/how-to-debug-small-programs,然后解释为什么您的代码适用于橡皮鸭。你不能的点就是错误所在。
-
另外,tk ths opprnty to stp usng abbrvs n yr cd。它使阅读变得异常困难,而难以阅读与初学者想要的相反。这不是
SaveAcc。它是SavingsAccount。这不是accountnr,而是accountNumber。
标签: c# overriding inherited