可能重复:
为什么Java中没有子类可见性修饰符?
Java的访问级别表显示了4种不同的选项,用于控制对类成员的访问:
Modifier Class Package Subclass World
public Y Y Y Y
protected Y Y Y N
no modifier Y Y N N
private Y N N N
Run Code Online (Sandbox Code Playgroud)
但是,对于"仅对类和子类可访问",没有修饰符.那是:
Modifier Class Package Subclass World
c++prot Y N Y N
Run Code Online (Sandbox Code Playgroud)
是否有可能在Java中定义这样的访问级别?
如果是这样,怎么样?
如果不可能,这必须归功于深思熟虑的设计原则.如果是这样,那个原则是什么.换句话说,为什么在Java中使用这样的访问级别不是一个好主意?
设计原则是开发人员不会恶意破解他们自己的程序.如果你不相信同一个包中的类表现正常,你就会有严重的非技术问题恕我直言.
访问修饰符用于限制意外错误,并且它们尝试以最小的复杂性停止大多数错误.
BTW:通过反射/ JNI调用,您可以绕过所有访问修饰符,因此它们不是坚如磐石的安全措施恕我直言.
| 归档时间: |
|
| 查看次数: |
2229 次 |
| 最近记录: |