logo Practice-It logo

inheritanceMystery

Author: Marty Stepp

Assume that the following classes have been defined:

public class Dog extends Cat {
    public void m1() {
        m2();
        System.out.print("dog 1   ");
    }
}

public class Lion extends Dog {
    public void m2() {
        System.out.print("lion 2   ");
        super.m2();
    }

    public String toString() {
        return "lion";
    }
}
public class Cat {
    public String toString() {
        return "cat";
    }

    public void m1() {
        System.out.print("cat 1   ");
    }

    public void m2() {
        System.out.print("cat 2   ");
    }
}

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

Cat[] elements = {new Dog(), new Cat(), new Lion()};
for (int i = 0; i < elements.length; i++) {
    elements[i].m1();
    System.out.println();
    elements[i].m2();
    System.out.println();
    System.out.println(elements[i]);
    System.out.println();
}
elements[0]: Dog
elements[1]: Cat
elements[2]: Lion

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.