From 6fa0a63b3a594afb02f2bd52b4ea883a75cac0d0 Mon Sep 17 00:00:00 2001 From: Kamal Wickramanayake Date: Sun, 22 Feb 2026 20:20:13 +0530 Subject: oop/inheritance sample code updated --- oop/02-inheritance-01/.gitignore | 1 + oop/02-inheritance-01/App.java | 12 +++++++++++ oop/02-inheritance-01/Person.java | 23 +++++++++++++++++++++ oop/02-inheritance-01/Student.java | 22 ++++++++++++++++++++ oop/02-inheritance-02-abstract-classes/.gitignore | 1 + .../Account.java | 24 ++++++++++++++++++++++ .../AccountTest.java | 22 ++++++++++++++++++++ .../CheckingAccount.java | 20 ++++++++++++++++++ .../SavingsAccount.java | 9 ++++++++ oop/02-inheritance/.gitignore | 1 - oop/02-inheritance/Account.java | 24 ---------------------- oop/02-inheritance/AccountTest.java | 22 -------------------- oop/02-inheritance/CheckingAccount.java | 20 ------------------ oop/02-inheritance/SavingsAccount.java | 9 -------- 14 files changed, 134 insertions(+), 76 deletions(-) create mode 100644 oop/02-inheritance-01/.gitignore create mode 100644 oop/02-inheritance-01/App.java create mode 100644 oop/02-inheritance-01/Person.java create mode 100644 oop/02-inheritance-01/Student.java create mode 100644 oop/02-inheritance-02-abstract-classes/.gitignore create mode 100644 oop/02-inheritance-02-abstract-classes/Account.java create mode 100644 oop/02-inheritance-02-abstract-classes/AccountTest.java create mode 100644 oop/02-inheritance-02-abstract-classes/CheckingAccount.java create mode 100644 oop/02-inheritance-02-abstract-classes/SavingsAccount.java delete mode 100644 oop/02-inheritance/.gitignore delete mode 100644 oop/02-inheritance/Account.java delete mode 100644 oop/02-inheritance/AccountTest.java delete mode 100644 oop/02-inheritance/CheckingAccount.java delete mode 100644 oop/02-inheritance/SavingsAccount.java diff --git a/oop/02-inheritance-01/.gitignore b/oop/02-inheritance-01/.gitignore new file mode 100644 index 0000000..6b468b6 --- /dev/null +++ b/oop/02-inheritance-01/.gitignore @@ -0,0 +1 @@ +*.class diff --git a/oop/02-inheritance-01/App.java b/oop/02-inheritance-01/App.java new file mode 100644 index 0000000..5ab7c3c --- /dev/null +++ b/oop/02-inheritance-01/App.java @@ -0,0 +1,12 @@ +public class App { + public static void main(String[] args) { + Person p1 = new Person("Kamal"); + System.out.println(p1.toString()); + + Student s1 = new Student("Tharindu", "ST003"); + System.out.println(s1.toString()); + + Person p2 = new Student("Yasas", "ST002"); + System.out.println(p2.toString()); + } +} \ No newline at end of file diff --git a/oop/02-inheritance-01/Person.java b/oop/02-inheritance-01/Person.java new file mode 100644 index 0000000..9b921b7 --- /dev/null +++ b/oop/02-inheritance-01/Person.java @@ -0,0 +1,23 @@ +public class Person { + + String name; + + public Person(String name) { + this.name = name; + } + + public String getName() { + return name; + } + + + public void setName(String name) { + this.name = name; + } + + + @Override + public String toString() { + return "Person [name=" + name + "]"; + } +} diff --git a/oop/02-inheritance-01/Student.java b/oop/02-inheritance-01/Student.java new file mode 100644 index 0000000..45ac18e --- /dev/null +++ b/oop/02-inheritance-01/Student.java @@ -0,0 +1,22 @@ +public class Student extends Person { + String studentID; + + public Student(String name, String studentID) { + super(name); + this.studentID = studentID; + } + + public String getStudentID() { + return studentID; + } + + public void setStudentID(String studentID) { + this.studentID = studentID; + } + + @Override + public String toString() { + return "Student [name=" + name + ", studentID=" + studentID + "]"; + } + +} 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; + } + } +} diff --git a/oop/02-inheritance/.gitignore b/oop/02-inheritance/.gitignore deleted file mode 100644 index 6b468b6..0000000 --- a/oop/02-inheritance/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.class diff --git a/oop/02-inheritance/Account.java b/oop/02-inheritance/Account.java deleted file mode 100644 index 91acb95..0000000 --- a/oop/02-inheritance/Account.java +++ /dev/null @@ -1,24 +0,0 @@ - -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 deleted file mode 100644 index cc5056b..0000000 --- a/oop/02-inheritance/AccountTest.java +++ /dev/null @@ -1,22 +0,0 @@ - -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 deleted file mode 100644 index a7c19b8..0000000 --- a/oop/02-inheritance/CheckingAccount.java +++ /dev/null @@ -1,20 +0,0 @@ - -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 deleted file mode 100644 index 497fb3d..0000000 --- a/oop/02-inheritance/SavingsAccount.java +++ /dev/null @@ -1,9 +0,0 @@ - -public class SavingsAccount extends Account { - - public void withdraw(double amount) { - if (balance >= amount) { - balance = balance - amount; - } - } -} -- cgit v1.2.3