Dav*_*run 8 java oop interface
我想设计类A实现接口C并降低方法的可见性(在C中声明)以使其从外部世界安全,使得在A类中实现的接口中的一个方法成为私有(降低了A类中的可见性) .出于安全原因,我必须这样做,我该怎么做,是否有解决方法.我们知道默认情况下,界面有公共成员.但我没有选择,有人可以帮助我.提前致谢.
- 所以,没有办法从接口获得类实现方法并将其设为私有.所有实现任何接口方法的类都将始终具有公共方法?
Jon*_*eet 14
不,您无法降低界面中方法的可见性.如果有人写道,你会发生什么?
C foo = new A();
foo.methodDeclaredPrivateInA();
Run Code Online (Sandbox Code Playgroud)
?就编译器而言,引用实现的所有内容都C有权调用其中的任何方法 - 这就是Liskov的替换原则的全部内容.
如果您不想实现整个公共接口,请不要实现它 - 如果您绝对必须,则抛出异常.
值得注意的是,源代码中提供的可访问性很少是一个很好的安全措施.如果您的类在VM中运行,而VM又可以确定自己的权限,那么任何人都可以通过反射使成员可见.
| 归档时间: |
|
| 查看次数: |
1578 次 |
| 最近记录: |