Bird
0
0

Given two packages pkg1 and pkg2, and these classes:

medium📝 Debug Q14 of 15
Java - Packages and Access Control
Given two packages pkg1 and pkg2, and these classes:
package pkg1;
class C {
    void display() {
        System.out.println("Inside C");
    }
}

package pkg2;
import pkg1.C;
public class D {
    public static void main(String[] args) {
        C c = new C();
        c.display();
    }
}

What is the error in this code?
ACannot access class C from pkg2 because it has default access
BCannot call display() because it is private
CCannot import package pkg1
DNo error, code runs fine
Step-by-Step Solution
Solution:
  1. Step 1: Check class C's access modifier and package

    Class C has default access (no keyword) and is in package pkg1, so it is accessible only within pkg1.
  2. Step 2: Check usage of C in pkg2

    Class D in pkg2 tries to create an instance of C and call display(), but C is not visible outside pkg1, causing a compile-time error.
  3. Final Answer:

    Cannot access class C from pkg2 because it has default access -> Option A
  4. Quick Check:

    Default access = package-only visibility [OK]
Quick Trick: Default access blocks cross-package access [OK]
Common Mistakes:
  • Assuming default access allows cross-package use
  • Thinking display() is private
  • Confusing import errors with access errors

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More Java Quizzes