logo

CuriousTab

CuriousTab

Discussion


Home Java Programming Declarations and Access Control See What Others Are Saying!
  • Question
  • Which is valid in a class that extends class A?
    class A 
    {  
        protected int method1(int a, int b) 
        {
            return 0; 
        } 
    }
    


  • Options
  • A. public int method1(int a, int b) {return 0; }
  • B. private int method1(int a, int b) { return 0; }
  • C. public short method1(int a, int b) { return 0; }
  • D. static protected int method1(int a, int b) { return 0; }

  • Correct Answer
  • public int method1(int a, int b) {return 0; } 

    Explanation
    Option A is correct - because the class that extends A is just simply overriding method1.

    Option B is wrong - because it can't override as there are less access privileges in the subclass method1.

    Option C is wrong - because to override it, the return type needs to be an integer. The different return type means that the method is not overriding but the same argument list means that the method is not overloading. Conflict - compile time error.

    Option D is wrong - because you can't override a method and make it a class method i.e. using static.


  • More questions

    • 1. What will be the output of the program?
      class MyThread extends Thread 
      { 
          MyThread() {} 
          MyThread(Runnable r) {super(r); } 
          public void run() 
          { 
              System.out.print("Inside Thread ");
          } 
      } 
      class MyRunnable implements Runnable 
      { 
          public void run() 
          { 
              System.out.print(" Inside Runnable"); 
          } 
      } 
      class Test 
      {  
          public static void main(String[] args) 
          { 
              new MyThread().start(); 
              new MyThread(new MyRunnable()).start(); 
          } 
      }
      

    • Options
    • A. Prints "Inside Thread Inside Thread"
    • B. Prints "Inside Thread Inside Runnable"
    • C. Does not compile
    • D. Throws exception at runtime
    • Discuss
    • 2. Which statement is true?

    • Options
    • A. Assertions can be enabled or disabled on a class-by-class basis.
    • B. Conditional compilation is used to allow tested classes to run at full speed.
    • C. Assertions are appropriate for checking the validity of arguments in a method.
    • D. The programmer can choose to execute a return statement or to throw an exception if an assertion fails.
    • Discuss
    • 3. What will be the output of the program?
      class Two 
      {
          byte x;
      }
      
      class PassO 
      {
          public static void main(String [] args) 
          {
              PassO p = new PassO();
              p.start();
          }
      
          void start() 
          {
              Two t = new Two();
              System.out.print(t.x + " ");
              Two t2 = fix(t);
              System.out.println(t.x + " " + t2.x);
          }
      
          Two fix(Two tt) 
          {
              tt.x = 42;
              return tt;
          }
      }
      

    • Options
    • A. null null 42
    • B. 0 0 42
    • C. 0 42 42
    • D. 0 0 0
    • Discuss
    • 4. You want subclasses in any package to have access to members of a superclass. Which is the most restrictive access that accomplishes this objective?

    • Options
    • A. public
    • B. private
    • C. protected
    • D. transient
    • Discuss
    • 5. What will be the output of the program?
      public class RTExcept 
      {
          public static void throwit () 
          {
              System.out.print("throwit ");
              throw new RuntimeException();
          }
          public static void main(String [] args) 
          {
              try 
              {
                  System.out.print("hello ");
                  throwit();
              }
              catch (Exception re ) 
              {
                  System.out.print("caught ");
              }
              finally 
              {
                  System.out.print("finally ");
              }
              System.out.println("after ");
          }
      }
      

    • Options
    • A. hello throwit caught
    • B. Compilation fails
    • C. hello throwit RuntimeException caught after
    • D. hello throwit caught finally after
    • Discuss
    • 6. Which of the following statements is true?

    • Options
    • A. It is sometimes good practice to throw an AssertionError explicitly.
    • B. Private getter() and setter() methods should not use assertions to verify arguments.
    • C. If an AssertionError is thrown in a try-catch block, the finally block will be bypassed.
    • D. It is proper to handle assertion statement failures using a catch (AssertionException ae) block.
    • Discuss
    • 7. Which of the following will not directly cause a thread to stop?

    • Options
    • A. notify()
    • B. wait()
    • C. InputStream access
    • D. sleep()
    • Discuss
    • 8. Which one is a valid declaration of a boolean?

    • Options
    • A. boolean b1 = 0;
    • B. boolean b2 = 'false';
    • C. boolean b3 = false;
    • D. boolean b4 = Boolean.false();
    • E. boolean b5 = no;
    • Discuss
    • 9. What will be the output of the program?
      String a = "ABCD"; 
      String b = a.toLowerCase(); 
      b.replace('a','d'); 
      b.replace('b','c'); 
      System.out.println(b);
      

    • Options
    • A. abcd
    • B. ABCD
    • C. dccd
    • D. dcba
    • Discuss
    • 10. What will be the output of the program?
      class Q207 
      { 
          public static void main(String[] args) 
          {
              int i1 = 5; 
              int i2 = 6; 
              String s1 = "7"; 
              System.out.println(i1 + i2 + s1); /* Line 8 */
          } 
      }
      

    • Options
    • A. 18
    • B. 117
    • C. 567
    • D. Compiler error
    • Discuss


    Comments

    There are no comments.

Enter a new Comment