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"); } }