我有一个类扩展了另一个类。例如:
class Store extends BehaviorSubject {
constructor(obj) {
super(obj)
}
}
我还有更多课程在扩展Store
。
我需要的是一种隐藏某些属性的方法BehaviorSubject
超类,例如next()
方法。
class SomeStore extends Store {
}
// I want to hide from this class some methods, properties
// That exists on the BehaviorSubject class.
const s = new SomeStore();
有办法做到这一点吗?
不可以。您可以重写子类中的方法来执行其他操作(或不执行任何操作),但这违反了里氏替换原则。
如果您的 Store 类不是BehaviorSubject,并且表现得不像一个BehaviorSubject,那么扩展是不正确的。在这种情况下,Store 应该包含BehaviorSubject 的私有实例,并且如果有必要,通过“代理”来公开它的一些方法/属性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)