Bird
0
0

Consider the following classes:

hard📝 Application Q9 of 15
Java - Packages and Access Control
Consider the following classes:
package pkg1;
public class A {
    protected int num = 42;
}

package pkg2;
import pkg1.A;
public class B extends A {
    public int getNum() {
        return num;
    }
}

package pkg2;
public class C {
    public static void main(String[] args) {
        B b = new B();
        System.out.println(b.num);
    }
}

What will happen when compiling class C?
ACompilation error: num has protected access and C is not subclass
BPrints 42
CCompilation error: num is private
DRuntime error
Step-by-Step Solution
Solution:
  1. Step 1: Analyze access of protected member num

    Protected members are accessible to subclasses and classes in same package only.
  2. Step 2: Check class C access

    Class C is neither subclass nor in same package, so direct access to b.num causes compilation error.
  3. Final Answer:

    Compilation error: num has protected access and C is not subclass -> Option A
  4. Quick Check:

    Protected blocks non-subclass access outside package [OK]
Quick Trick: Only subclasses or same package can access protected members [OK]
Common Mistakes:
  • Assuming subclass access extends to all classes in subclass package
  • Expecting protected to behave like public
  • Ignoring package boundaries

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More Java Quizzes