【发布时间】:2011-02-20 06:20:43
【问题描述】:
我创建了一个类 A,它有一些定义为受保护的函数。
现在B类继承A,C类继承B。A类有私有默认构造函数和受保护的参数化构造函数。
我希望 B 类能够访问 A 类中定义的所有受保护函数,但 C 类可以访问某些函数,但不是所有函数,并且 C 类继承 B 类。
如何限制从 Class C 访问 Class A 的某些功能?
编辑:
namespace Db
{
public class A
{
private A(){}
protected A(string con){assign this value}
protected DataTable getTable(){return Table;}
protected Sqlparameters setParameters(){return parameter;}
}
}
namespace Data
{
public class B:A
{
protected B():base("constring"){}
protected DataTable output(){return getTable();}
protected sqlparameter values(param IDataParameter[] parameter){}
}
}
namespace Bsns
{
public class C:B
{
protected C():base(){}
protected DataTable show()
{return values(setparameter());}
}
}
编辑
我想我在这里要做的是多重继承。
请检查。
class A
{
//suppose 10 functions are declared
}
class B:A
{
//5 functions declared which are using A's function in internal body
}
class C:B
{
//using all functions of B but require only 4 functions of A to be accessible by C.
}
【问题讨论】:
-
为什么要这么做?如果 C 类与 A 和 B 位于不同的程序集中,则可以使用受保护的内部。
-
@Moron:不,所有类都在同一个程序集中。任何其他解决方案,我可以将 A 类拆分为更多类,但不能为 B 或 C 做到这一点
-
@Moron:如果我将所有 3 个类都放在不同的程序集中,我希望 B 类访问所有函数,但 C 类访问有限的函数。
标签: c# .net oop class class-design