logo Practice-It logo

inheritanceMystery

Author: Whitaker Brand

Assume that the following classes have been defined:

public class Vier extends Drei {
    public void method2() {
        super.method2();
        System.out.print("Vier 2   ");
    }

    public String toString() {
        return "Vier " + super.toString();
    }
}


public class Zwei extends Eins {
    public void method2() {
        System.out.print("Zwei 2   ");
        method1();
    }
}
public class Drei extends Zwei {
    public void method1() {
        System.out.print("Drei 1   ");
    }

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

public class Eins {
    public String toString() {
        return "Eins";
    }
    
    public void method1() {
        System.out.print("Eins 1   ");
    }
    
    public void method2() {
        System.out.print("Eins 2   ");
    }
}

Given the classes above, what output is produced by the following code?

Eins[] elements = {new Zwei(), new Eins(), new Vier(), new Drei()};
for (int i = 0; i < elements.length; i++) {
    System.out.println(elements[i]);
    elements[i].method1();
    System.out.println();
    elements[i].method2();
    System.out.println();
    System.out.println();
}
elements[0]: Zwei
elements[1]: Eins
elements[2]: Vier
elements[3]: Drei

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.