diff options
| author | Kamal Wickramanayake <kamal@inbox.lk> | 2026-02-22 19:43:58 +0530 |
|---|---|---|
| committer | Kamal Wickramanayake <kamal@inbox.lk> | 2026-02-22 19:43:58 +0530 |
| commit | baaba4a281b7d54e6b5d7767989c303b854b6932 (patch) | |
| tree | 16201b64e9c8f20d7fa394c715f4ca5df51e9e08 /oop/02-inheritance | |
| parent | ae4cf7c9f0a0b90d02166b43402e67b7d4ad4dca (diff) | |
Directory rename
Diffstat (limited to 'oop/02-inheritance')
| -rw-r--r-- | oop/02-inheritance/.gitignore | 1 | ||||
| -rw-r--r-- | oop/02-inheritance/Account.java | 24 | ||||
| -rw-r--r-- | oop/02-inheritance/AccountTest.java | 22 | ||||
| -rw-r--r-- | oop/02-inheritance/CheckingAccount.java | 20 | ||||
| -rw-r--r-- | oop/02-inheritance/SavingsAccount.java | 9 |
5 files changed, 76 insertions, 0 deletions
diff --git a/oop/02-inheritance/.gitignore b/oop/02-inheritance/.gitignore new file mode 100644 index 0000000..6b468b6 --- /dev/null +++ b/oop/02-inheritance/.gitignore @@ -0,0 +1 @@ +*.class diff --git a/oop/02-inheritance/Account.java b/oop/02-inheritance/Account.java new file mode 100644 index 0000000..91acb95 --- /dev/null +++ b/oop/02-inheritance/Account.java @@ -0,0 +1,24 @@ + +public abstract class Account { + + /* Declaring fields - represent state */ + protected int accountNumber; + protected double balance; + + public Account() { + /// + } + + /* Declaring methods - represent operations */ + + public abstract void withdraw(double amount); + + public void deposit(double amount) { + balance += amount; + } + + public double getBalance() { + return balance; + } + +} diff --git a/oop/02-inheritance/AccountTest.java b/oop/02-inheritance/AccountTest.java new file mode 100644 index 0000000..cc5056b --- /dev/null +++ b/oop/02-inheritance/AccountTest.java @@ -0,0 +1,22 @@ + +public class AccountTest { + + /** + * @param args + */ + public static void main(String[] args) { + SavingsAccount a1 = new SavingsAccount(); + + Account a3 = new SavingsAccount(); + + Account a2 = new CheckingAccount(); + + + + CheckingAccount a4 = new CheckingAccount(); + + +// CheckingAccount a5 = new SavingsAccount(); // not working + } + +} diff --git a/oop/02-inheritance/CheckingAccount.java b/oop/02-inheritance/CheckingAccount.java new file mode 100644 index 0000000..a7c19b8 --- /dev/null +++ b/oop/02-inheritance/CheckingAccount.java @@ -0,0 +1,20 @@ + +public class CheckingAccount extends Account { + + + protected double overdraftLimit; + + + public void withdraw(double amount) { + double finalBalance = balance - amount; + if (finalBalance < 0) { + if (-finalBalance <= overdraftLimit) { + balance = finalBalance; + } else { + // throw exception + } + } else { + balance = finalBalance; + } + } +} diff --git a/oop/02-inheritance/SavingsAccount.java b/oop/02-inheritance/SavingsAccount.java new file mode 100644 index 0000000..497fb3d --- /dev/null +++ b/oop/02-inheritance/SavingsAccount.java @@ -0,0 +1,9 @@ + +public class SavingsAccount extends Account { + + public void withdraw(double amount) { + if (balance >= amount) { + balance = balance - amount; + } + } +} |
