这个 Button 类也没有实现 state 私有属性啊

来源:3-12 接口 -类类型+继承接口+混合类型+接口继承类

小学生6年级

2019-04-28

为什么没有报错呢

写回答

3回答

ustbhuangyi

2019-04-28

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

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

0
2
ustbhuangyi
回复
小学生6年级
没关系,其实这个应用场景也不太多,理解就好,有其他问题也欢迎随时提问~
2019-04-28
共2条回复

小学生6年级

提问者

2019-04-28

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

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
0

小学生6年级

提问者

2019-04-28

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

0
0

下一代前端开发语言 TypeScript从零重构axios

课程从零开始重构功能完整的JS库,是学习造轮子的不二之选!

2629 学习 · 877 问题

查看课程