logo Practice-It logo

inheritanceMystery

Author: Marty Stepp

Assume that the following classes have been defined:

public class McCain extends Biden {
    public void republican() {
        System.out.print("mccain-R   ");
    }
}

public class Palin {
    public void republican() {
        System.out.print("palin-R   ");
    }

    public void democrat() {
        republican();
        System.out.print("palin-D   ");
    }

    public String toString() {
        return "palin";
    }
}
public class Obama extends Palin {
    public void republican() {
        super.republican();
        System.out.print("obama-R   ");
    }
}

public class Biden extends Palin {
    public String toString() {
        return "biden";
    }

    public void democrat() {
        System.out.print("biden-D   ");
        super.democrat();
    }
}

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

Palin[] politicians = {new Biden(), new Palin(), new McCain(), new Obama()};
for (int i = 0; i < politicians.length; i++) {
    System.out.println(politicians[i]);
    politicians[i].republican();
    System.out.println();
    politicians[i].democrat();
    System.out.println();
    System.out.println();
}
elements[0]: Biden
elements[1]: Palin
elements[2]: McCain
elements[3]: Obama

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.