logo Practice-It logo

Gandalf

Author: Stuart Reges (on 2014/02/13)

Assuming that the following classes have been defined:

        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");
            }
        }

And assuming the following variables have been 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();

In the table below, indicate in the right-hand column the output produced by the statement in the left-hand column. 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, fill in the right-hand column with either the phrase "compiler error" or "runtime error" to indicate when the error would be detected.

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).method1();
((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.