internal class DB { private string name; public DB(string name) { this.name = name; } public virtual string Show() { return "Show "+ name + " " + DateTime.Now.ToString(); } } public class AD : DB { public AD(string name) :base(name) { } }
没太明白你的意思啊。。 将这两个类放到一个程序集里呢?DB为internal,AD为public?
internal 的构造如何解决?如何让继承的构造internal基类。
你的需求是不能用继承实现的 在基本的语法,或者面向对象的约束里,是不允许private->public这样子的派生类拥有比基类更大的访问权限的要实现你的需求,就不能是"AD is a DB",而是"AD has a DB"public class AD : DB {} 对比一下public class AD { private DB data; public AD(string name) { this.data = new DB(name); } public virtual String Show() { if (data == null) return null; else return data.Show(); } }
{
private string name;
public DB(string name)
{
this.name = name;
} public virtual string Show()
{
return "Show "+ name + " " + DateTime.Now.ToString();
}
} public class AD : DB
{
public AD(string name)
:base(name)
{
}
}
将这两个类放到一个程序集里呢?DB为internal,AD为public?
在基本的语法,或者面向对象的约束里,是不允许private->public这样子的派生类拥有比基类更大的访问权限的要实现你的需求,就不能是"AD is a DB",而是"AD has a DB"public class AD : DB {} 对比一下public class AD
{
private DB data;
public AD(string name) { this.data = new DB(name); }
public virtual String Show()
{
if (data == null)
return null;
else
return data.Show();
}
}
{
private class DB { }}