1

同一个包中的非子类和不同包中的子类有什么区别?

4

2 回答 2

2

给定一个班级,A

  • 同一包中的非子类A可以访问A

  • 不同包中的子类A可以访问A.


注意:包私有保护没有关键字 - 它是在未指定其他保护时选择的保护。

public void thisIsPublic(...)

protected void thisIsProtected(...)

void thisIsPackagePrivate(...)

推荐阅读:控制对类成员的访问

于 2012-12-06T13:23:36.537 回答
2

“同一个包中的非子类和不同包中的子类”,而问题是“当我们在同一个包中声明非子类和不同包中的子类时会发生什么?
这在您处理Scope Specifiers时很重要。这里是显示差异的表格。

                       Private     No Modifier    Protected     Public

1. Same class           Yes             Yes         Yes          Yes

2. Same package         No              Yes         Yes          Yes
   subclass
3. Same package         No              Yes         Yes          Yes
   non-subclass
4. Different package    No              No          Yes          Yes
   subclass
5. Different package    No              No          No           Yes
   non-subclass

该表来自“Herbert Schildt”的“Java The Complete Reference”一书

于 2012-12-06T13:59:09.327 回答