diff --git a/NTU-OOP-Tuts.iml b/NTU-OOP-Tuts.iml index 9a5cfce..561f220 100644 --- a/NTU-OOP-Tuts.iml +++ b/NTU-OOP-Tuts.iml @@ -3,6 +3,7 @@ + \ No newline at end of file diff --git a/T2Q1-1/T2Q1-1.iml b/T2Q1-1/T2Q1-1.iml index 82236ea..c90834f 100644 --- a/T2Q1-1/T2Q1-1.iml +++ b/T2Q1-1/T2Q1-1.iml @@ -5,7 +5,7 @@ - + \ No newline at end of file diff --git a/T2Q1-2/T2Q1-2.iml b/T2Q1-2/T2Q1-2.iml index 82236ea..c90834f 100644 --- a/T2Q1-2/T2Q1-2.iml +++ b/T2Q1-2/T2Q1-2.iml @@ -5,7 +5,7 @@ - + \ No newline at end of file diff --git a/T2Q1-3/T2Q1-3.iml b/T2Q1-3/T2Q1-3.iml index 82236ea..c90834f 100644 --- a/T2Q1-3/T2Q1-3.iml +++ b/T2Q1-3/T2Q1-3.iml @@ -5,7 +5,7 @@ - + \ No newline at end of file diff --git a/T2Q1-4/T2Q1-4.iml b/T2Q1-4/T2Q1-4.iml index 82236ea..c90834f 100644 --- a/T2Q1-4/T2Q1-4.iml +++ b/T2Q1-4/T2Q1-4.iml @@ -5,7 +5,7 @@ - + \ No newline at end of file diff --git a/T2Q1-5/T2Q1-5.iml b/T2Q1-5/T2Q1-5.iml index 82236ea..c90834f 100644 --- a/T2Q1-5/T2Q1-5.iml +++ b/T2Q1-5/T2Q1-5.iml @@ -5,7 +5,7 @@ - + \ No newline at end of file diff --git a/T2Q1-extra1/T2Q1-extra1.iml b/T2Q1-extra1/T2Q1-extra1.iml index 82236ea..c90834f 100644 --- a/T2Q1-extra1/T2Q1-extra1.iml +++ b/T2Q1-extra1/T2Q1-extra1.iml @@ -5,7 +5,7 @@ - + \ No newline at end of file diff --git a/T2Q1-extra2/T2Q1-extra2.iml b/T2Q1-extra2/T2Q1-extra2.iml index 82236ea..c90834f 100644 --- a/T2Q1-extra2/T2Q1-extra2.iml +++ b/T2Q1-extra2/T2Q1-extra2.iml @@ -5,7 +5,7 @@ - + \ No newline at end of file diff --git a/T2Q1-extra3/T2Q1-extra3.iml b/T2Q1-extra3/T2Q1-extra3.iml index 82236ea..c90834f 100644 --- a/T2Q1-extra3/T2Q1-extra3.iml +++ b/T2Q1-extra3/T2Q1-extra3.iml @@ -5,7 +5,7 @@ - + \ No newline at end of file diff --git a/T2Q2/T2Q2.iml b/T2Q2/T2Q2.iml index 82236ea..c90834f 100644 --- a/T2Q2/T2Q2.iml +++ b/T2Q2/T2Q2.iml @@ -5,7 +5,7 @@ - + \ No newline at end of file diff --git a/T3Q1-1/T3Q1-1.iml b/T3Q1-1/T3Q1-1.iml index 82236ea..c90834f 100644 --- a/T3Q1-1/T3Q1-1.iml +++ b/T3Q1-1/T3Q1-1.iml @@ -5,7 +5,7 @@ - + \ No newline at end of file diff --git a/T3Q1-2/T3Q1-2.iml b/T3Q1-2/T3Q1-2.iml index 82236ea..c90834f 100644 --- a/T3Q1-2/T3Q1-2.iml +++ b/T3Q1-2/T3Q1-2.iml @@ -5,7 +5,7 @@ - + \ No newline at end of file diff --git a/T3Q1-3/T3Q1-3.iml b/T3Q1-3/T3Q1-3.iml index 82236ea..c90834f 100644 --- a/T3Q1-3/T3Q1-3.iml +++ b/T3Q1-3/T3Q1-3.iml @@ -5,7 +5,7 @@ - + \ No newline at end of file diff --git a/T3Q1-4/T3Q1-4.iml b/T3Q1-4/T3Q1-4.iml index 82236ea..c90834f 100644 --- a/T3Q1-4/T3Q1-4.iml +++ b/T3Q1-4/T3Q1-4.iml @@ -5,7 +5,7 @@ - + \ No newline at end of file diff --git a/T3Q1-extra1/T3Q1-extra1.iml b/T3Q1-extra1/T3Q1-extra1.iml index 82236ea..c90834f 100644 --- a/T3Q1-extra1/T3Q1-extra1.iml +++ b/T3Q1-extra1/T3Q1-extra1.iml @@ -5,7 +5,7 @@ - + \ No newline at end of file diff --git a/T3Q2-1/T3Q2-1.iml b/T3Q2-1/T3Q2-1.iml index 82236ea..c90834f 100644 --- a/T3Q2-1/T3Q2-1.iml +++ b/T3Q2-1/T3Q2-1.iml @@ -5,7 +5,7 @@ - + \ No newline at end of file diff --git a/T3Q2-2/T3Q2-2.iml b/T3Q2-2/T3Q2-2.iml index 82236ea..c90834f 100644 --- a/T3Q2-2/T3Q2-2.iml +++ b/T3Q2-2/T3Q2-2.iml @@ -5,7 +5,7 @@ - + \ No newline at end of file diff --git a/T3Q2-3/T3Q2-3.iml b/T3Q2-3/T3Q2-3.iml index 82236ea..c90834f 100644 --- a/T3Q2-3/T3Q2-3.iml +++ b/T3Q2-3/T3Q2-3.iml @@ -5,7 +5,7 @@ - + \ No newline at end of file diff --git a/T3Q2-4/T3Q2-4.iml b/T3Q2-4/T3Q2-4.iml index 82236ea..c90834f 100644 --- a/T3Q2-4/T3Q2-4.iml +++ b/T3Q2-4/T3Q2-4.iml @@ -5,7 +5,7 @@ - + \ No newline at end of file diff --git a/T5Q1/T5Q1.iml b/T5Q1/T5Q1.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/T5Q1/T5Q1.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/T5Q1/src/Main.java b/T5Q1/src/Main.java new file mode 100644 index 0000000..79c079f --- /dev/null +++ b/T5Q1/src/Main.java @@ -0,0 +1,11 @@ +public class Main { + public static void main(String[] args) { + ClassF z = new ClassF(); + + z.print(9); + z.print(2, "Cx2002"); + z.print("Object"); + z.print("OODP", "Java"); +// z.print("OODP", 2002); // Compilation error + } +} \ No newline at end of file diff --git a/T5Q2-A-Sol1/T5Q2-A-Sol1.iml b/T5Q2-A-Sol1/T5Q2-A-Sol1.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/T5Q2-A-Sol1/T5Q2-A-Sol1.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/T5Q2-A-Sol1/src/ClassA.java b/T5Q2-A-Sol1/src/ClassA.java new file mode 100644 index 0000000..afa22fa --- /dev/null +++ b/T5Q2-A-Sol1/src/ClassA.java @@ -0,0 +1,5 @@ +public class ClassA { + public void print(int x, String y) { + System.out.println(x + " " + y); + } +} diff --git a/T5Q2-A-Sol1/src/ClassB.java b/T5Q2-A-Sol1/src/ClassB.java new file mode 100644 index 0000000..fcdb0c3 --- /dev/null +++ b/T5Q2-A-Sol1/src/ClassB.java @@ -0,0 +1,5 @@ +public class ClassB extends ClassA { + public void print(int x) { + System.out.println(x); + } +} diff --git a/T5Q2-A-Sol1/src/ClassC.java b/T5Q2-A-Sol1/src/ClassC.java new file mode 100644 index 0000000..e1107e2 --- /dev/null +++ b/T5Q2-A-Sol1/src/ClassC.java @@ -0,0 +1,3 @@ +public abstract class ClassC extends ClassA { + public abstract void print(String x, String y); +} diff --git a/T5Q2-A-Sol1/src/ClassD.java b/T5Q2-A-Sol1/src/ClassD.java new file mode 100644 index 0000000..6434f18 --- /dev/null +++ b/T5Q2-A-Sol1/src/ClassD.java @@ -0,0 +1,5 @@ +public class ClassD extends ClassC { + public void print(String a, String b) { + System.out.println(a + " " + b); + } +} diff --git a/T5Q2-A-Sol1/src/ClassE.java b/T5Q2-A-Sol1/src/ClassE.java new file mode 100644 index 0000000..7a8da05 --- /dev/null +++ b/T5Q2-A-Sol1/src/ClassE.java @@ -0,0 +1,8 @@ +public class ClassE extends ClassC { + public void print(String x) { + System.out.println(x); + } + public void print(String x, String y) { + System.out.println(x + " " + y); + } +} diff --git a/T5Q2-A-Sol1/src/ClassF.java b/T5Q2-A-Sol1/src/ClassF.java new file mode 100644 index 0000000..cd9a8dc --- /dev/null +++ b/T5Q2-A-Sol1/src/ClassF.java @@ -0,0 +1,5 @@ +public class ClassF extends ClassE { + public void print(int x) { + System.out.println(x); + } +} diff --git a/T5Q2-A-Sol1/src/ClassG.java b/T5Q2-A-Sol1/src/ClassG.java new file mode 100644 index 0000000..54221cc --- /dev/null +++ b/T5Q2-A-Sol1/src/ClassG.java @@ -0,0 +1,5 @@ +public class ClassG extends ClassF { + public void print(String x) { + System.out.println(x); + } +} diff --git a/T5Q2-A-Sol1/src/Main.java b/T5Q2-A-Sol1/src/Main.java new file mode 100644 index 0000000..be9bb2d --- /dev/null +++ b/T5Q2-A-Sol1/src/Main.java @@ -0,0 +1,5 @@ +public class Main { + public static void main(String[] args) { + ClassF z = new ClassF(); + } +} \ No newline at end of file diff --git a/T5Q2-A-Sol2/T5Q2-A-Sol2.iml b/T5Q2-A-Sol2/T5Q2-A-Sol2.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/T5Q2-A-Sol2/T5Q2-A-Sol2.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/T5Q2-A-Sol2/src/ClassA.java b/T5Q2-A-Sol2/src/ClassA.java new file mode 100644 index 0000000..afa22fa --- /dev/null +++ b/T5Q2-A-Sol2/src/ClassA.java @@ -0,0 +1,5 @@ +public class ClassA { + public void print(int x, String y) { + System.out.println(x + " " + y); + } +} diff --git a/T5Q2-A-Sol2/src/ClassB.java b/T5Q2-A-Sol2/src/ClassB.java new file mode 100644 index 0000000..fcdb0c3 --- /dev/null +++ b/T5Q2-A-Sol2/src/ClassB.java @@ -0,0 +1,5 @@ +public class ClassB extends ClassA { + public void print(int x) { + System.out.println(x); + } +} diff --git a/T5Q2-A-Sol2/src/ClassC.java b/T5Q2-A-Sol2/src/ClassC.java new file mode 100644 index 0000000..e1107e2 --- /dev/null +++ b/T5Q2-A-Sol2/src/ClassC.java @@ -0,0 +1,3 @@ +public abstract class ClassC extends ClassA { + public abstract void print(String x, String y); +} diff --git a/T5Q2-A-Sol2/src/ClassD.java b/T5Q2-A-Sol2/src/ClassD.java new file mode 100644 index 0000000..6434f18 --- /dev/null +++ b/T5Q2-A-Sol2/src/ClassD.java @@ -0,0 +1,5 @@ +public class ClassD extends ClassC { + public void print(String a, String b) { + System.out.println(a + " " + b); + } +} diff --git a/T5Q2-A-Sol2/src/ClassE.java b/T5Q2-A-Sol2/src/ClassE.java new file mode 100644 index 0000000..baba39b --- /dev/null +++ b/T5Q2-A-Sol2/src/ClassE.java @@ -0,0 +1,6 @@ +public abstract class ClassE extends ClassC { + public void print(String x) { + System.out.println(x); + } + public abstract void print(String x, String y); +} diff --git a/T5Q2-A-Sol2/src/ClassF.java b/T5Q2-A-Sol2/src/ClassF.java new file mode 100644 index 0000000..1cd9000 --- /dev/null +++ b/T5Q2-A-Sol2/src/ClassF.java @@ -0,0 +1,8 @@ +public class ClassF extends ClassE { + public void print(int x) { + System.out.println(x); + } + public void print(String x, String y) { + System.out.println(x + " " + y); + } +} diff --git a/T5Q2-A-Sol2/src/ClassG.java b/T5Q2-A-Sol2/src/ClassG.java new file mode 100644 index 0000000..215ba8b --- /dev/null +++ b/T5Q2-A-Sol2/src/ClassG.java @@ -0,0 +1,8 @@ +public class ClassG extends ClassF { + public void print(String x) { + System.out.println(x); + } + public void print(String x, String y) { + System.out.println(x + " " + y); + } +} diff --git a/T5Q2-A-Sol2/src/Main.java b/T5Q2-A-Sol2/src/Main.java new file mode 100644 index 0000000..f5858db --- /dev/null +++ b/T5Q2-A-Sol2/src/Main.java @@ -0,0 +1,5 @@ +public class Main { + public static void main(String[] args) { + + } +} \ No newline at end of file diff --git a/T5Q2-A/T5Q2-A.iml b/T5Q2-A/T5Q2-A.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/T5Q2-A/T5Q2-A.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/T5Q2-A/src/ClassA.java b/T5Q2-A/src/ClassA.java new file mode 100644 index 0000000..afa22fa --- /dev/null +++ b/T5Q2-A/src/ClassA.java @@ -0,0 +1,5 @@ +public class ClassA { + public void print(int x, String y) { + System.out.println(x + " " + y); + } +} diff --git a/T5Q2-A/src/ClassB.java b/T5Q2-A/src/ClassB.java new file mode 100644 index 0000000..fcdb0c3 --- /dev/null +++ b/T5Q2-A/src/ClassB.java @@ -0,0 +1,5 @@ +public class ClassB extends ClassA { + public void print(int x) { + System.out.println(x); + } +} diff --git a/T5Q2-A/src/ClassC.java b/T5Q2-A/src/ClassC.java new file mode 100644 index 0000000..e1107e2 --- /dev/null +++ b/T5Q2-A/src/ClassC.java @@ -0,0 +1,3 @@ +public abstract class ClassC extends ClassA { + public abstract void print(String x, String y); +} diff --git a/T5Q2-A/src/ClassD.java b/T5Q2-A/src/ClassD.java new file mode 100644 index 0000000..6434f18 --- /dev/null +++ b/T5Q2-A/src/ClassD.java @@ -0,0 +1,5 @@ +public class ClassD extends ClassC { + public void print(String a, String b) { + System.out.println(a + " " + b); + } +} diff --git a/T5Q2-A/src/ClassE.java b/T5Q2-A/src/ClassE.java new file mode 100644 index 0000000..89f1391 --- /dev/null +++ b/T5Q2-A/src/ClassE.java @@ -0,0 +1,5 @@ +public class ClassE extends ClassC { + public void print(String x) { + System.out.println(x); + } +} diff --git a/T5Q2-A/src/ClassF.java b/T5Q2-A/src/ClassF.java new file mode 100644 index 0000000..cd9a8dc --- /dev/null +++ b/T5Q2-A/src/ClassF.java @@ -0,0 +1,5 @@ +public class ClassF extends ClassE { + public void print(int x) { + System.out.println(x); + } +} diff --git a/T5Q2-A/src/ClassG.java b/T5Q2-A/src/ClassG.java new file mode 100644 index 0000000..54221cc --- /dev/null +++ b/T5Q2-A/src/ClassG.java @@ -0,0 +1,5 @@ +public class ClassG extends ClassF { + public void print(String x) { + System.out.println(x); + } +} diff --git a/T5Q2-A/src/Main.java b/T5Q2-A/src/Main.java new file mode 100644 index 0000000..be9bb2d --- /dev/null +++ b/T5Q2-A/src/Main.java @@ -0,0 +1,5 @@ +public class Main { + public static void main(String[] args) { + ClassF z = new ClassF(); + } +} \ No newline at end of file diff --git a/T5Q2-B-FromSol1/T5Q2-B-FromSol1.iml b/T5Q2-B-FromSol1/T5Q2-B-FromSol1.iml new file mode 100644 index 0000000..82236ea --- /dev/null +++ b/T5Q2-B-FromSol1/T5Q2-B-FromSol1.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/T5Q2-B-FromSol1/src/ClassA.java b/T5Q2-B-FromSol1/src/ClassA.java new file mode 100644 index 0000000..afa22fa --- /dev/null +++ b/T5Q2-B-FromSol1/src/ClassA.java @@ -0,0 +1,5 @@ +public class ClassA { + public void print(int x, String y) { + System.out.println(x + " " + y); + } +} diff --git a/T5Q2-B-FromSol1/src/ClassB.java b/T5Q2-B-FromSol1/src/ClassB.java new file mode 100644 index 0000000..fcdb0c3 --- /dev/null +++ b/T5Q2-B-FromSol1/src/ClassB.java @@ -0,0 +1,5 @@ +public class ClassB extends ClassA { + public void print(int x) { + System.out.println(x); + } +} diff --git a/T5Q2-B-FromSol1/src/ClassC.java b/T5Q2-B-FromSol1/src/ClassC.java new file mode 100644 index 0000000..e1107e2 --- /dev/null +++ b/T5Q2-B-FromSol1/src/ClassC.java @@ -0,0 +1,3 @@ +public abstract class ClassC extends ClassA { + public abstract void print(String x, String y); +} diff --git a/T5Q2-B-FromSol1/src/ClassD.java b/T5Q2-B-FromSol1/src/ClassD.java new file mode 100644 index 0000000..6434f18 --- /dev/null +++ b/T5Q2-B-FromSol1/src/ClassD.java @@ -0,0 +1,5 @@ +public class ClassD extends ClassC { + public void print(String a, String b) { + System.out.println(a + " " + b); + } +} diff --git a/T5Q2-B-FromSol1/src/ClassE.java b/T5Q2-B-FromSol1/src/ClassE.java new file mode 100644 index 0000000..7a8da05 --- /dev/null +++ b/T5Q2-B-FromSol1/src/ClassE.java @@ -0,0 +1,8 @@ +public class ClassE extends ClassC { + public void print(String x) { + System.out.println(x); + } + public void print(String x, String y) { + System.out.println(x + " " + y); + } +} diff --git a/T5Q2-B-FromSol1/src/ClassF.java b/T5Q2-B-FromSol1/src/ClassF.java new file mode 100644 index 0000000..cd9a8dc --- /dev/null +++ b/T5Q2-B-FromSol1/src/ClassF.java @@ -0,0 +1,5 @@ +public class ClassF extends ClassE { + public void print(int x) { + System.out.println(x); + } +} diff --git a/T5Q2-B-FromSol1/src/ClassG.java b/T5Q2-B-FromSol1/src/ClassG.java new file mode 100644 index 0000000..54221cc --- /dev/null +++ b/T5Q2-B-FromSol1/src/ClassG.java @@ -0,0 +1,5 @@ +public class ClassG extends ClassF { + public void print(String x) { + System.out.println(x); + } +} diff --git a/T5Q2-B-FromSol1/src/Main.java b/T5Q2-B-FromSol1/src/Main.java new file mode 100644 index 0000000..42980ef --- /dev/null +++ b/T5Q2-B-FromSol1/src/Main.java @@ -0,0 +1,15 @@ +public class Main { + public static void main(String[] args) { + // I - Works +// ClassC c = new ClassD(); +// c.print("hello", "there"); + + // II - Does not compile because class C is abstract +// ClassA a = new ClassC(); +// a.print(1, "there"); + + // III - Doesn't work - Class A does not have print(string, string) method +// ClassA a = new ClassF(); +// a.print("hello", "there"); + } +} \ No newline at end of file diff --git a/T5Q2-B-FromSol2/T5Q2-B-FromSol2.iml b/T5Q2-B-FromSol2/T5Q2-B-FromSol2.iml new file mode 100644 index 0000000..82236ea --- /dev/null +++ b/T5Q2-B-FromSol2/T5Q2-B-FromSol2.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/T5Q2-B-FromSol2/src/ClassA.java b/T5Q2-B-FromSol2/src/ClassA.java new file mode 100644 index 0000000..afa22fa --- /dev/null +++ b/T5Q2-B-FromSol2/src/ClassA.java @@ -0,0 +1,5 @@ +public class ClassA { + public void print(int x, String y) { + System.out.println(x + " " + y); + } +} diff --git a/T5Q2-B-FromSol2/src/ClassB.java b/T5Q2-B-FromSol2/src/ClassB.java new file mode 100644 index 0000000..fcdb0c3 --- /dev/null +++ b/T5Q2-B-FromSol2/src/ClassB.java @@ -0,0 +1,5 @@ +public class ClassB extends ClassA { + public void print(int x) { + System.out.println(x); + } +} diff --git a/T5Q2-B-FromSol2/src/ClassC.java b/T5Q2-B-FromSol2/src/ClassC.java new file mode 100644 index 0000000..e1107e2 --- /dev/null +++ b/T5Q2-B-FromSol2/src/ClassC.java @@ -0,0 +1,3 @@ +public abstract class ClassC extends ClassA { + public abstract void print(String x, String y); +} diff --git a/T5Q2-B-FromSol2/src/ClassD.java b/T5Q2-B-FromSol2/src/ClassD.java new file mode 100644 index 0000000..6434f18 --- /dev/null +++ b/T5Q2-B-FromSol2/src/ClassD.java @@ -0,0 +1,5 @@ +public class ClassD extends ClassC { + public void print(String a, String b) { + System.out.println(a + " " + b); + } +} diff --git a/T5Q2-B-FromSol2/src/ClassE.java b/T5Q2-B-FromSol2/src/ClassE.java new file mode 100644 index 0000000..baba39b --- /dev/null +++ b/T5Q2-B-FromSol2/src/ClassE.java @@ -0,0 +1,6 @@ +public abstract class ClassE extends ClassC { + public void print(String x) { + System.out.println(x); + } + public abstract void print(String x, String y); +} diff --git a/T5Q2-B-FromSol2/src/ClassF.java b/T5Q2-B-FromSol2/src/ClassF.java new file mode 100644 index 0000000..1cd9000 --- /dev/null +++ b/T5Q2-B-FromSol2/src/ClassF.java @@ -0,0 +1,8 @@ +public class ClassF extends ClassE { + public void print(int x) { + System.out.println(x); + } + public void print(String x, String y) { + System.out.println(x + " " + y); + } +} diff --git a/T5Q2-B-FromSol2/src/ClassG.java b/T5Q2-B-FromSol2/src/ClassG.java new file mode 100644 index 0000000..215ba8b --- /dev/null +++ b/T5Q2-B-FromSol2/src/ClassG.java @@ -0,0 +1,8 @@ +public class ClassG extends ClassF { + public void print(String x) { + System.out.println(x); + } + public void print(String x, String y) { + System.out.println(x + " " + y); + } +} diff --git a/T5Q2-B-FromSol2/src/Main.java b/T5Q2-B-FromSol2/src/Main.java new file mode 100644 index 0000000..5380632 --- /dev/null +++ b/T5Q2-B-FromSol2/src/Main.java @@ -0,0 +1,15 @@ +public class Main { + public static void main(String[] args) { + // I - Works + ClassC c = new ClassD(); + c.print("hello", "there"); + + // II - Does not compile because class C is abstract +// ClassA a = new ClassC(); +// a.print(1, "there") + + // III - Works + ClassF a = new ClassF(); + a.print("hello", "there"); + } +} \ No newline at end of file diff --git a/T5Q2-C/T5Q2-C.iml b/T5Q2-C/T5Q2-C.iml new file mode 100644 index 0000000..82236ea --- /dev/null +++ b/T5Q2-C/T5Q2-C.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/T5Q2-C/src/ClassA.java b/T5Q2-C/src/ClassA.java new file mode 100644 index 0000000..afa22fa --- /dev/null +++ b/T5Q2-C/src/ClassA.java @@ -0,0 +1,5 @@ +public class ClassA { + public void print(int x, String y) { + System.out.println(x + " " + y); + } +} diff --git a/T5Q2-C/src/ClassB.java b/T5Q2-C/src/ClassB.java new file mode 100644 index 0000000..fcdb0c3 --- /dev/null +++ b/T5Q2-C/src/ClassB.java @@ -0,0 +1,5 @@ +public class ClassB extends ClassA { + public void print(int x) { + System.out.println(x); + } +} diff --git a/T5Q2-C/src/ClassC.java b/T5Q2-C/src/ClassC.java new file mode 100644 index 0000000..a1fdca0 --- /dev/null +++ b/T5Q2-C/src/ClassC.java @@ -0,0 +1,5 @@ +public class ClassC extends ClassA { + public void print(String x, String y) { + System.out.println(x + " " + y); + } +} diff --git a/T5Q2-C/src/ClassD.java b/T5Q2-C/src/ClassD.java new file mode 100644 index 0000000..6434f18 --- /dev/null +++ b/T5Q2-C/src/ClassD.java @@ -0,0 +1,5 @@ +public class ClassD extends ClassC { + public void print(String a, String b) { + System.out.println(a + " " + b); + } +} diff --git a/T5Q2-C/src/ClassE.java b/T5Q2-C/src/ClassE.java new file mode 100644 index 0000000..89f1391 --- /dev/null +++ b/T5Q2-C/src/ClassE.java @@ -0,0 +1,5 @@ +public class ClassE extends ClassC { + public void print(String x) { + System.out.println(x); + } +} diff --git a/T5Q2-C/src/ClassF.java b/T5Q2-C/src/ClassF.java new file mode 100644 index 0000000..cd9a8dc --- /dev/null +++ b/T5Q2-C/src/ClassF.java @@ -0,0 +1,5 @@ +public class ClassF extends ClassE { + public void print(int x) { + System.out.println(x); + } +} diff --git a/T5Q2-C/src/ClassG.java b/T5Q2-C/src/ClassG.java new file mode 100644 index 0000000..54221cc --- /dev/null +++ b/T5Q2-C/src/ClassG.java @@ -0,0 +1,5 @@ +public class ClassG extends ClassF { + public void print(String x) { + System.out.println(x); + } +} diff --git a/T5Q2-C/src/Main.java b/T5Q2-C/src/Main.java new file mode 100644 index 0000000..8b15fce --- /dev/null +++ b/T5Q2-C/src/Main.java @@ -0,0 +1,32 @@ +public class Main { + public static void main(String[] args) { + // I - Doesn't work because downcast needs to be explicitly declared +// ClassC c = new ClassD(); +// ClassE e = c; +// ClassE e = (ClassE) c; + + // II - CanĀ“t upcast because they are from different family branches +// ClassB b = new ClassE(); +// b.print("hello"); + + // III +// ClassA a = new ClassF(); // Ok +// a.print(12, "there"); // Ok +// a.print(88); // Compilation error + + // IV +// ClassA a = new ClassC(); // Ok +// ClassG g = new (ClassG)a; // Syntax error +// g.print("hello"); // RunTime error: trick + + // V +// ClassA a = new ClassC(); // ok +// ClassG g = (ClassG)a; // ok +// g.print("hello", "there"); // Runtime error: trick + + // VI +// ClassA a = new ClassF(); // OK +// ClassC f = (ClassC)a; // Ok +// f.print(88, "there"); // Ok + } +} \ No newline at end of file diff --git a/T5Q3/T5Q3.iml b/T5Q3/T5Q3.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/T5Q3/T5Q3.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/T5Q3/src/TestPolygon.java b/T5Q3/src/TestPolygon.java index a153d31..2f34292 100644 --- a/T5Q3/src/TestPolygon.java +++ b/T5Q3/src/TestPolygon.java @@ -29,16 +29,6 @@ public class TestPolygon { - - - - - - - - - -