Home / Java Programming / Declarations and Access Control :: Discussion

Discussion :: Declarations and Access Control

  1. interface Base  {     boolean m1 ();     byte m2(short s); } 
    which two code fragments will compile?
    1. interface Base2 implements Base {}
    2. abstract class Class2 extends Base
      { public boolean m1(){ return true; }}
    3. abstract class Class2 implements Base {}
    4. abstract class Class2 implements Base
      { public boolean m1(){ return (7 > 4); }}
    5. abstract class Class2 implements Base
      { protected boolean m1(){ return (5 > 7) }}

  2. A.
    1 and 2
    B.
    2 and 3
    C.
    3 and 4
    D.
    1 and 5

    View Answer

    Workspace

    Answer : Option C

    Explanation :

    (3) is correct because an abstract class doesn't have to implement any or all of its interface's methods. (4) is correct because the method is correctly implemented ((7 > 4) is a boolean).

    (1) is incorrect because interfaces don't implement anything. (2) is incorrect because classes don't extend interfaces. (5) is incorrect because interface methods are implicitly public, so the methods being implemented must be public.


Be The First To Comment