diff options
Diffstat (limited to 'oop/02-inheritance-02-abstract-classes')
5 files changed, 76 insertions, 0 deletions
diff --git a/oop/02-inheritance-02-abstract-classes/.gitignore b/oop/02-inheritance-02-abstract-classes/.gitignore new file mode 100644 index 0000000..6b468b6 --- /dev/null +++ b/oop/02-inheritance-02-abstract-classes/.gitignore @@ -0,0 +1 @@ +*.class diff --git a/oop/02-inheritance-02-abstract-classes/Account.java b/oop/02-inheritance-02-abstract-classes/Account.java new file mode 100644 index 0000000..91acb95 --- /dev/null +++ b/oop/02-inheritance-02-abstract-classes/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-02-abstract-classes/AccountTest.java b/oop/02-inheritance-02-abstract-classes/AccountTest.java new file mode 100644 index 0000000..cc5056b --- /dev/null +++ b/oop/02-inheritance-02-abstract-classes/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-02-abstract-classes/CheckingAccount.java b/oop/02-inheritance-02-abstract-classes/CheckingAccount.java new file mode 100644 index 0000000..a7c19b8 --- /dev/null +++ b/oop/02-inheritance-02-abstract-classes/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-02-abstract-classes/SavingsAccount.java b/oop/02-inheritance-02-abstract-classes/SavingsAccount.java new file mode 100644 index 0000000..497fb3d --- /dev/null +++ b/oop/02-inheritance-02-abstract-classes/SavingsAccount.java @@ -0,0 +1,9 @@ + +public class SavingsAccount extends Account { + + public void withdraw(double amount) { + if (balance >= amount) { + balance = balance - amount; + } + } +} |
