JAVA里,实现一个接口,其成员的访问权限为什么不能是private?

霸王CSS 发布于 2014/07/20 11:41
阅读 732
收藏 0

虽然其他语言里也没听说在实现的时候可以把权限定为private。

不过我突然想了这么个需求:

希望一部分(量还有点大)组件在初始化的时候拥有变形(定义Changable接口)的能力,
而这种能力只在初始化的时候使用,
不愿意让其他类看见的话,
不就需要在实现的时候将其写成private了吗?

还是说这种能力放在类内直接实现?可是并不是所有组件都需要变形能力,而且这个变形能力需要在不同组件之间形成一种规范和标准,那肿么办呢?


加载中
2
逝水fox
逝水fox

private 方法本身就不能给子类(或者实现类),接口的意义是规范类对外的行为方法,而不是对类内部的实现做限制。

楼主这种情况建议做一个抽象基类,定义一个protected abstract方法

1
xesam
xesam

对于不能够让其他类看见的方法,没必要遵循接口。

0
Will_awokE
Will_awokE
interface 默认是public的。
0
wangxigui
wangxigui
啥价接口,接口就是连接外部,或者给外部提供联系的桥梁,所以接口里怎么会有私有呢,私有的东西都不能叫接口,so,你可以用abstract类,里面可以有public 也可以private
0
Left-Shift
Left-Shift
接口就是强制别人实现他的方法,private方法怎么实现呢?
0
char1st
char1st
你可以在你实现的方法里面直接抛个自定义的MethodNotSupportedException
0
yinjq
yinjq

重写方法时可以扩大它的访问权限,但不可以缩小访问权限(一旦缩小了,那么将来别人继承你的类但同时又需要重写父类的该方法时,就行不通了);

抽象方法可以解决你的问题。

返回顶部
顶部