![]() |
1
1
我建议你重新考虑一下你的设计。也许有一个更简单的方法。如果C使用B的实例而不是从它派生(组合),会怎么样?这样C可以使用B的公共方法,但不能访问受保护的方法。 A类不应该关心后代的级别/深度。如果某个东西被标记为受保护,那么它应该同时为B和C受到保护(不管继承链的深度如何)。 B可以选择通过加强限制来界定其后代(但这是罕见的)。 如果你能告诉我更多关于你所处环境的情况-你想解决的问题……我可以给你一个更详细/有用的答案。 |
![]() |
2
4
您需要在同一个程序集中具有类A和B,在另一个程序集中具有类C。
结果是标记一个成员
偶数 C# programming guide on MSDN 弄错了:
菲尔哈克 explains :
以下是更新后的代码:
|
![]() |
3
2
看起来您应该使用组合而不是继承。 类A实现calc()和allow()。
乙类有A
C类从B派生,并且无权访问B类中的私有A对象。 |
![]() |
4
0
正如其他人所说,您可能希望使用组合而不是继承。
不过,看看您的示例,我会质疑C是否应该从B继承,或者它是否真的应该只保存对B类型对象的引用。 就个人而言,如果类在逻辑上不属于不同的程序集中,我不会为了限制访问而将类放入不同的程序集中。还有其他方法来处理它。 |
![]() |
iasonas · 如何检查自定义注释? 6 月前 |
![]() |
Svyat · 如何创建一个类设置,其中两个类各包含另一个类的实例? 7 月前 |
![]() |
F-22 Destroyer · 遇到super()问题 11 月前 |
|
simply lemon · python上链表的添加方法 11 月前 |
![]() |
Minty · 自定义类中使用numpy数组进行左加法/右加法的不同行为 11 月前 |