logo Practice-It logo

inheritanceMystery

Author: Marty Stepp (on 2020/04/16)

Assume that the following classes have been defined:

        public class D extends C {
            public void method1() {
                System.out.println("d 1");
            }
        }

        public class C {
            public void method1() {
                System.out.println("c 1");
            }

            public void method2() {
                System.out.println("c 2");
            }

            public String toString() {
                return "c";
            }
        }
        public class A extends C {
            public void method1() {
                System.out.println("a 1");
            }

            public String toString() {
                return "a";
            }
        }

        public class B extends A {
            public void method2() {
                System.out.println("b 2");
            }
        }

Consider the following code fragment:

        C[] elements = {new B(), new C(), new A(), new D()};
        for (int i = 0; i < elements.length; i++) {
            System.out.println(elements[i]);
            elements[i].method1();
            elements[i].method2();
            System.out.println();
        }

What output is produced by this code? Write the output as a series of 3-line columns in order from left to right (do not label columns or rows).

elements[0]: B
elements[1]: C
elements[2]: A
elements[3]: D

You must log in before you can solve this problem.


Log In

If you do not understand how to solve a problem or why your solution doesn't work, please contact your TA or instructor.
If something seems wrong with the site (errors, slow performance, incorrect problems/tests, etc.), please

Is there a problem? Contact a site administrator.