Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

1. Assuming the following classes have been defined: public class First { public

ID: 3541424 • Letter: 1

Question

1.   Assuming   the following classes have been defined:

public class First {

    public void method2()   {

          System.out.println("First2");

    }

    public void method3()   {

        method2();

    }

}

public class Second extends First {

    public void method2()   {

          System.out.println("Second2");

    }

}

public class Third extends Second {

    public void method1()   {

          System.out.println("Third1");

        super.method2();

    }

    public void method2()   {

          System.out.println("Third2");

    }

}

public class Fourth extends First {

    public void method1()   {

          System.out.println("Fourth1");

    }

    public void method2()   {

          System.out.println("Fourth2");

    }

}

           And that the following variables   have been defined:

First var1 = new Second();

First var2 = new Third();

First var3 = new Fourth();

Second var4 = new Third();

Object var5 = new Fourth();

Object var6 = new Second();

Fourth var7 = new Fourth();

     What is the output produced by each   statement below?  If the statement   produces more than one line of output, indicate the line breaks with slashes   as in "a/b/c".  If the   statement causes an error, write either "compiler error" or   "runtime error" as appropriate.

Statement

var1.method2();

var2.method2();

var3.method2();

var4.method2();

var5.method2();

var6.method2();

var1.method3();

var2.method3();

var3.method3();

var4.method3();

var5.method3();

var6.method3();

((Second)var4).method1();

((Second)var7).method1();

((First)var4).method2();

((Second)var1).method2();

((Third)var4).method1();

((Second)var5).method2();

((First)var5).method3();

((Third)var5).method1();

((First)var6).method3();

((Second)var6).method1();

((Second)var6).method3();

  

1.   Assuming   the following classes have been defined:

  

public class First {

  

    public void method2()   {

  

          System.out.println("First2");

  

    }

  

  

    public void method3()   {

  

        method2();

  

    }

  

}

  

  

public class Second extends First {

  

    public void method2()   {

  

          System.out.println("Second2");

  

    }

  

}

  

  

public class Third extends Second {

  

    public void method1()   {

  

          System.out.println("Third1");

  

        super.method2();

  

    }

  

  

    public void method2()   {

  

          System.out.println("Third2");

  

    }

  

}

  

  

public class Fourth extends First {

  

    public void method1()   {

  

          System.out.println("Fourth1");

  

    }

  

  

    public void method2()   {

  

          System.out.println("Fourth2");

  

    }

  

}

  

  

           And that the following variables   have been defined:

  

First var1 = new Second();

  

First var2 = new Third();

  

First var3 = new Fourth();

  

Second var4 = new Third();

  

Object var5 = new Fourth();

  

Object var6 = new Second();

  

Fourth var7 = new Fourth();

  

     

     What is the output produced by each   statement below?  If the statement   produces more than one line of output, indicate the line breaks with slashes   as in "a/b/c".  If the   statement causes an error, write either "compiler error" or   "runtime error" as appropriate.

  

Statement

  

  

var1.method2();

  

  

var2.method2();

  

  

var3.method2();

  

  

var4.method2();

  

  

var5.method2();

  

  

var6.method2();

  

  

var1.method3();

  

  

var2.method3();

  

  

var3.method3();

  

  

var4.method3();

  

  

var5.method3();

  

  

var6.method3();

  

  

((Second)var4).method1();

  

((Second)var7).method1();

  

((First)var4).method2();

  

((Second)var1).method2();

  

  

((Third)var4).method1();

  

  

((Second)var5).method2();

  

  

((First)var5).method3();

  

  

((Third)var5).method1();

  

  

((First)var6).method3();

  

  

((Second)var6).method1();

  

  

((Second)var6).method3();

  

  

Explanation / Answer

Compilation error at below places:


var5.method2();



var6.method2();




var5.method3();

var6.method3();

((Second)var4).method1();

((Second)var7).method1();


((Second)var6).method1();