šŸ¦ Project: Bank Account System

šŸ“š Lesson 5: Object-Oriented Basics ā± 30-35 min šŸ“Š Intermediate
šŸŽÆ Objective

Build a banking system that demonstrates inheritance, polymorphism, abstract classes, and encapsulation. Create different account types with specialized behaviors.

Requirements

  1. Create an abstract base class BankAccount with account number, balance, and abstract methods
  2. Implement SavingsAccount with interest rate and minimum balance
  3. Implement CheckingAccount with overdraft limit and transaction fees
  4. Implement BusinessAccount with higher limits and business features
  5. Create a Bank class that manages multiple accounts
  6. Support deposit, withdraw, and transfer operations with proper validation
  7. Display account summaries with formatted output

Expected Output

Terminal
╔══════════════════════════════════╗
ā•‘       BANK ACCOUNT SYSTEM         ā•‘
ā•šā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•

šŸ¦ Creating accounts...

āœ… Savings Account Created: SA-001 | Balance: $1,000.00
āœ… Checking Account Created: CA-001 | Balance: $500.00
āœ… Business Account Created: BA-001 | Balance: $10,000.00

šŸ“Š Account Summary:
────────────────────────────────────
SA-001 [Savings]     | $1,000.00 | Rate: 2.5%
CA-001 [Checking]    | $500.00   | Overdraft: $200.00
BA-001 [Business]    | $10,000.00| Limit: $50,000.00

šŸ’° Transactions:
→ Depositing $200.00 to SA-001: āœ… New balance: $1,200.00
→ Withdrawing $600.00 from CA-001: āœ… New balance: -$100.00 (overdraft)
→ Transferring $2,000.00 from BA-001 to SA-001: āœ… Complete

šŸ“ˆ Final Balances:
SA-001: $3,200.00 (+$2,200.00)
CA-001: -$100.00 (-$600.00)
BA-001: $8,000.00 (-$2,000.00)