请稍等 ...
×

采纳答案成功!

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

关于继承接口的疑问

class Contorl {
private state: any
}
interface selecetableContron extends Contorl {
select()
}
这样写是为了selecetableContron这个接口增加了一个限制:要有state属性,对吗?
那么为什么不像下面这样写?
interface selecetableContron {
state:any
select()
}
这样子我新建一个TextBox类,然后去继承selecetableContron的时候,也规定了这个类要有state属性与select方法啊
class TextBox implements selecetableContron {

}

请问这两者的区别是什么呢

正在回答

1回答

ustbhuangyi 2019-07-30 10:23:51

课程的例子是为了演示接口继承类,仔细品读一下下面这段话:
当接口继承了一个类类型时,它会继承类的成员但不包括其实现。 就好像接口声明了所有类中存在的成员,但并没有提供具体实现一样。 接口同样会继承到类的 private 和 protected 成员。 这意味着当你创建了一个接口继承了一个拥有私有或受保护的成员的类时,这个接口类型只能被这个类或其子类所实现(implement)。

所以例子中 interface selecetableContron extends Contorl ,也就意味着接口 selecetableContron 继承了 Control 类,也继承了其私有成员 state。

你的写法并没有把  state 作为类私有成员的功能。

0 回复 有任何疑惑可以回复我~
  • 提问者 EdonPlus #1
    非常感谢!明白了
    回复 有任何疑惑可以回复我~ 2019-07-30 14:06:32
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信