请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答

3回答

因为 Button 类继承了 Control,它就可以访问到父类定义的私有成员了,而当接口继承了一个类类型时,它会继承类的成员但不包括其实现。所以 SelectableControl 继承了 Control,也会继承它的私有成员 state,Button 也继承了 state, 就可以去 implements SelectableControl 了,而 ImageC 没有继承 state,就报错了。

另外即使 ImageC 中定义了 state,它并不是 Control 中的 state,所以也会报错。

0 回复 有任何疑惑可以回复我~
  • 提问者 小学生6年级 #1
    多谢老师,之前是我进入了误区,不太了解类继承,一直以为私有属性既然不能访问那么就说明没有继承。把访问权限和继承弄混了。。
    回复 有任何疑惑可以回复我~ 2019-04-28 13:42:22
  • ustbhuangyi 回复 提问者 小学生6年级 #2
    没关系,其实这个应用场景也不太多,理解就好,有其他问题也欢迎随时提问~
    回复 有任何疑惑可以回复我~ 2019-04-28 14:13:36
提问者 小学生6年级 2019-04-28 12:57:23

看了官网的答案,似乎有点理解了..感觉好怪异..

In the above example, SelectableControl contains all of the members of Control, including the private stateproperty. Since state is a private member it is only possible for descendants of Control to implement SelectableControl. This is because only descendants of Control will have a state private member that originates in the same declaration, which is a requirement for private members to be compatible.


意思是这个接口继承了这个类,但是它实现的这个既然是个私有属性,那么只有这个它继承的类的才能访问这个属性.因此也就意味着任意一个类实现这个接口的同时必须要继承该接口所继承的类..有点绕...是这个意思吗老师...这样做等于隐式将一个接口和类做了绑定可以这样理解么.

0 回复 有任何疑惑可以回复我~
提问者 小学生6年级 2019-04-28 12:35:55

或者说这里的 ImageC 实现一下 private state 爲什麼不可以還是會報錯呢

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信