问题描述
我有一个这样的类层次结构:
abstract class Base {
private b: string;
abstract protected x() {}
abstract pub(): void;
}
class D1 extends Base {
private d: number;
protected x() { ... }
pub() {}
}
我需要向API使用者公开派生类:
class D2 extends D1 {
}
...但是我不希望D2
的用户(意外或故意)使用其超类的受保护/私有成员。但是,D2
必须有权访问公共超类成员。是否仍可以通过(new D2()) instanceof D1
检查的同时隐藏内部(通过符号或其他方式?)?我可以更改任何私有/受保护的内部组件,但公共API需要保持不变。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)