logo Practice-It logo

FrodoGandalfBilboGollum

Author: Robert Baxter

Consider the following classes:

public class Frodo extends Bilbo {
    public void method1() {
        System.out.println("Frodo 1");
        super.method1();
    }

    public void method3() {
        System.out.println("Frodo 3");
    }
}

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

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

public class Bilbo extends Gandalf {
    public void method1() {
        System.out.println("Bilbo 1");
    }
}

public class Gollum extends Gandalf {
    public void method3() {
        System.out.println("Gollum 3");
    }
}

Suppose the following variables are defined:

Gandalf var1 = new Frodo();
Gandalf var2 = new Bilbo();
Gandalf var3 = new Gandalf();
Object var4 = new Bilbo();
Bilbo var5 = new Frodo();
Object var6 = new Gollum();

Indicate on each line below the output produced by each statement shown. If the statement produces more than one line of output indicate the line breaks with slashes as in a/b/c to indicate three lines of output with a followed by b followed by c. If the statement causes an error, write the word error to indicate this.

var1.method1();
var2.method1();
var3.method1();
var4.method1();
var5.method1();
var6.method1();
var1.method2();
var2.method2();
var3.method2();
var4.method2();
var5.method2();
var6.method2();
((Bilbo) var1).method3();
((Gandalf) var1).method2();
((Frodo) var4).method2();
((Gandalf) var6).method2();
((Gandalf) var4).method1();
((Frodo) var6).method3();
((Frodo) var3).method3();
((Frodo) var5).method3();

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.