logo

CuriousTab

CuriousTab

Discussion


Home Java Programming Declarations and Access Control See What Others Are Saying!
  • Question
  • What will be the output of the program?
    class Super 
    { 
        public Integer getLength() 
        {
            return new Integer(4); 
        } 
    } 
    
    public class Sub extends Super 
    { 
        public Long getLength() 
        {
            return new Long(5); 
        } 
    
        public static void main(String[] args) 
        { 
            Super sooper = new Super(); 
            Sub sub = new Sub(); 
            System.out.println( 
            sooper.getLength().toString() + "," + sub.getLength().toString() ); 
        } 
    }
    


  • Options
  • A. 4, 4
  • B. 4, 5
  • C. 5, 4
  • D. Compilation fails.

  • Correct Answer
  • Compilation fails. 

    Explanation
    Option D is correct, compilation fails - The return type of getLength( ) in the super class is an object of reference type Integer and the return type in the sub class is an object of reference type Long. In other words, it is not an override because of the change in the return type and it is also not an overload because the argument list has not changed.

    More questions

    • 1. Which cannot directly cause a thread to stop executing?

    • Options
    • A. Calling the SetPriority() method on a Thread object.
    • B. Calling the wait() method on an object.
    • C. Calling notify() method on an object.
    • D. Calling read() method on an InputStream object.
    • Discuss
    • 2. What will be the output of the program?
      public class Foo 
      {  
          public static void main(String[] args) 
          {
              try 
              { 
                  return; 
              } 
              finally 
              {
                  System.out.println( "Finally" ); 
              } 
          } 
      }
      

    • Options
    • A. Finally
    • B. Compilation fails.
    • C. The code runs with no output.
    • D. An exception is thrown at runtime.
    • Discuss
    • 3. What will be the output of the program?
      public class Test138 
      { 
          public static void stringReplace (String text) 
          {
              text = text.replace ('j' , 'c'); /* Line 5 */
          } 
          public static void bufferReplace (StringBuffer text) 
          { 
              text = text.append ("c");  /* Line 9 */
          } 
          public static void main (String args[]) 
          { 
              String textString = new String ("java"); 
              StringBuffer textBuffer = new StringBuffer ("java"); /* Line 14 */
              stringReplace(textString); 
              bufferReplace(textBuffer); 
              System.out.println (textString + textBuffer); 
          } 
      }
      

    • Options
    • A. java
    • B. javac
    • C. javajavac
    • D. Compile error
    • Discuss
    • 4. What will be the output of the program?
      public class WrapTest 
      {
          public static void main(String [] args) 
          {
              int result = 0;
              short s = 42;
              Long x = new Long("42");
              Long y = new Long(42);
              Short z = new Short("42");
              Short x2 = new Short(s);
              Integer y2 = new Integer("42");
              Integer z2 = new Integer(42);
      
              if (x == y) /* Line 13 */
                  result = 1;
              if (x.equals(y) ) /* Line 15 */
                  result = result + 10;
              if (x.equals(z) ) /* Line 17 */
                  result = result + 100;
              if (x.equals(x2) ) /* Line 19 */
                  result = result + 1000;
              if (x.equals(z2) ) /* Line 21 */
                  result = result + 10000;
      
              System.out.println("result = " + result);
          }
      }
      

    • Options
    • A. result = 1
    • B. result = 10
    • C. result = 11
    • D. result = 11010
    • Discuss
    • 5. Which three are valid declarations of a float?

      1. float f1 = -343;
      2. float f2 = 3.14;
      3. float f3 = 0x12345;
      4. float f4 = 42e7;
      5. float f5 = 2001.0D;
      6. float f6 = 2.81F;

    • Options
    • A. 1, 2, 4
    • B. 2, 3, 5
    • C. 1, 3, 6
    • D. 2, 4, 6
    • Discuss
    • 6. Which statement is true?

    • Options
    • A. catch(X x) can catch subclasses of X where X is a subclass of Exception.
    • B. The Error class is a RuntimeException.
    • C. Any statement that can throw an Error must be enclosed in a try block.
    • D. Any statement that can throw an Exception must be enclosed in a try block.
    • Discuss
    • 7. What will be the output of the program?
      import java.util.*;
      public class NewTreeSet2 extends NewTreeSet 
      {
          public static void main(String [] args) 
          {
              NewTreeSet2 t = new NewTreeSet2();
              t.count();
          }
      }
      protected class NewTreeSet
      {
          void count() 
          {
              for (int x = 0; x < 7; x++,x++ ) 
              {
                  System.out.print(" " + x);
              }
          }
      }
      

    • Options
    • A. 0 2 4
    • B. 0 2 4 6
    • C. Compilation fails at line 2
    • D. Compilation fails at line 10
    • Discuss
    • 8. What will be the output of the program?
      int x = 3; 
      int y = 1; 
      if (x = y) /* Line 3 */
      {
          System.out.println("x =" + x); 
      }
      

    • Options
    • A. x = 1
    • B. x = 3
    • C. Compilation fails.
    • D. The code runs with no output.
    • Discuss
    • 9. What will be the output of the program?
      public static void main(String[] args) 
      {
          Object obj = new Object() 
          {
              public int hashCode() 
              {
                  return 42;
              }
          }; 
          System.out.println(obj.hashCode()); 
      }
      

    • Options
    • A. 42
    • B. Runtime Exception
    • C. Compile Error at line 2
    • D. Compile Error at line 5
    • Discuss
    • 10. What will be the output of the program?
      public class SyncTest 
      {
          public static void main (String [] args) 
          {
              Thread t = new Thread() 
              {
                  Foo f = new Foo();
                  public void run() 
                  {
                      f.increase(20);
                  }
              };
          t.start();
          }
      }
      class Foo 
      {
          private int data = 23;
          public void increase(int amt) 
          {
              int x = data;
              data = x + amt;
          }
      }
      
      and assuming that data must be protected from corruption, what?if anything?can you add to the preceding code to ensure the integrity of data?

    • Options
    • A. Synchronize the run method.
    • B. Wrap a synchronize(this) around the call to f.increase().
    • C. The existing code will cause a runtime exception.
    • D. Synchronize the increase() method
    • Discuss


    Comments

    There are no comments.

Enter a new Comment