Hi
there are two kinds of bank accounts: normal account and saving account.For each, a diiferent method Debit is applied.
I'm trying to implement a method for both accounts. I have already done it with absctract class, but now i want to do it with using interface.
Class Bank is ok.
The first error i meet is public class SavingAccount : Bank 'base class Bank is less accessible than class SavingAccount.
The next error is at public override void Debit(double amount): cannot override inherited member because it's not marked as abstract ... But if I set abstract at line public abstract void Debit(double amount) in class Bank, i get the error: "cannot declare a body because it's abstract.
Thanks
using System; interface IBank { void Debit(double amount); }
class Bank : IBank { private string owner; private double balance;
public string Owner { get { return owner; } }
public double Balance { get { return balance; } set { balance = value; } }
public string See() { string descr = balance.ToString(); return descr; }
public Bank(string theOwner, double theBalance) { owner = theOwner; balance = theBalance; }
public void Debit(double amount) {
} }
public class SavingAccount : Bank { public SavingAccount(string theOwner, double theBalance) : base(theOwner, theBalance) {
} public override void Debit(double amount) { Balance -= amount - 5; } }
public class NormalAccount : Bank { public NormalAccount(string theOwner, double theBalance) : base(theOwner,theBalance) {
} public override void Debit(double amount) { Balance -= amount - 10; } }
public class Program { static void Main(string[] args) { SavingAccount saveBob = new SavingAccount("Bob", 1000); saveBob.Debit(400); Console.WriteLine(saveBob.See());
NormalAccount normalBob = new NormalAccount("Bob", 200); normalBob.Debit(200); Console.WriteLine(saveBob.See()); } }