Solution Review: Implement Banking Application Using Polymorphism
Explore how to implement a banking application using polymorphism in C#. Learn to create base and derived account classes that override deposit and withdrawal methods, ensuring proper balance handling and displaying account information.
We'll cover the following...
We'll cover the following...
Solution
C#
class Account {private double _balance;protected double Balance {get { return this._balance; }// Check before setting the balanceset { if(value>=0)this._balance = value;}}// Constructorpublic Account(double balance) {this.Balance = balance;}//Virtual Methodspublic virtual bool Deposit(double amount) {return false;}public virtual bool Withdraw(double amount) {return false;}public virtual void PrintBalance() {Console.WriteLine("The balance is: " + Balance);}}class SavingsAccount : Account {private double _interestRate;// Constructorpublic SavingsAccount(double balance): base(balance){ // It's always preferable to initialize fields inside a constructorthis._interestRate = 0.8;}// Overridden Methodspublic override bool Deposit(double amount) {if(amount > 0) { // Check if amount is non-zero and non-negative// Adding to balance with interest rateBalance += amount + (amount * this._interestRate);return true;}return false;}public override bool Withdraw(double amount) {if(amount > 0 && amount <= Balance) { // Check if amount is non-zero and less than equal to balance// Deducting from balance with interest rateBalance -= amount + (amount * this._interestRate);return true;}return false;}public override void PrintBalance() {Console.WriteLine("The saving account balance is: " + base.Balance);}}class CheckingAccount : Account{// Constructorpublic CheckingAccount(double balance): base(balance) { }// Overridden Methodspublic override bool Deposit(double amount) {if (amount > 0){Balance += amount;return true;}return false;}public override bool Withdraw(double amount) {if (amount > 0 && amount <= Balance){Balance -= amount;return true;}return false;}public override void PrintBalance() {Console.WriteLine("The checking account balance is: " + base.Balance);}}class Demo {public static void Main(string[] args) {Account SAccount = new SavingsAccount(5000);// Creating saving account objectSAccount.Deposit(1000);SAccount.PrintBalance();SAccount.Withdraw(3000);SAccount.PrintBalance();Console.WriteLine();// Creating checking account objectAccount CAccount = new CheckingAccount(5000);CAccount.Deposit(1000);CAccount.PrintBalance();CAccount.Withdraw(3000);CAccount.PrintBalance();}}
...