Adding extra exercises for Polymorphism and Inheritance
This commit is contained in:
parent
0b1fb6c74a
commit
bd3c2688f4
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
|
@ -0,0 +1,9 @@
|
|||
public class ClassA {
|
||||
public void method1() {
|
||||
System.out.println("ClassA.method1");
|
||||
}
|
||||
|
||||
public void method2() {
|
||||
System.out.println("ClassA.method2");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
public class ClassB extends ClassA {
|
||||
public void method2() {
|
||||
System.out.println("ClassB.method2");
|
||||
}
|
||||
|
||||
public void method3() {
|
||||
System.out.println("ClassB.method3");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
public class ClassC extends ClassB {
|
||||
public void method3() {
|
||||
System.out.println("ClassC.method3");
|
||||
}
|
||||
|
||||
public void method4() {
|
||||
System.out.println("ClassC.method4");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
// I
|
||||
// ClassA a = new ClassB();
|
||||
// ClassB b = (ClassB) a;
|
||||
// b.method2(); // ClassB.method2
|
||||
// b.method1(); // ClassA.method1
|
||||
|
||||
// II
|
||||
// ClassA c = new ClassB();
|
||||
// ClassC d = (ClassC) c; // Runtime error here
|
||||
// d.method3(); // Never executed
|
||||
|
||||
// III
|
||||
// ClassA e = new ClassC();
|
||||
// ClassB f = (ClassB) e;
|
||||
// f.method3(); // ClassC.method3
|
||||
// f.method2(); // ClassB.method2
|
||||
// f.method1(); // ClassA.method1
|
||||
|
||||
// IV
|
||||
// ClassC g = (ClassC) new ClassA(); // Runtime error
|
||||
// g.method1(); // never executed
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue