同一个包中的非子类与不同包中的子类之间有什么区别?
答案 0 :(得分:2)
给定一个班级A
与A
相同的包中的非子类可以访问A
其他包中的A
子类可以访问A
的公共和受保护方法。
注意:包私有保护没有关键字 - 当没有指定其他保护时,它是选择的保护。
public void thisIsPublic(...)
protected void thisIsProtected(...)
void thisIsPackagePrivate(...)
答案 1 :(得分:2)
“同一个包中的非子类和不同包中的子类”,而不是问题是“当我们在不同包中的相同包和子类中声明非子类时会发生什么? 当您处理范围说明符时,这很重要。以下是显示差异的表格。
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”一书