【发布时间】:2012-03-22 12:04:28
【问题描述】:
我的问题可能措辞不好,可能是骗人的,但我走了
class person {
protected static string request = "select * from person where gender in ('male','female')";
public string sharedmethod()
{
return "the request is" + request;
}
}
class man:person
{
override protected static string request = "select person.*,man.* from person,men where mytype in ('male') ";
DateTime dateOfFirstCar;
}
class woman:person
{
override protected static string request = "select person.*,woman.* from person,women where mytype in ('female') ";
DateTime dateOfFirstITBAG;
}
class Program
{
static void Main(string[] args)
{
if (new person().sharedmethod() == new man().sharedmethod())
Console.Write("too bad query is the same in base and dervide class");
}
}
一个人就是一个人
女人就是人
Person,man,woman 存在于我的数据库中,但需要不同的查询
我不想重复这些查询,所以我认为将它们存储在每个类的静态属性中是个好主意。
我在基类中得到了一些低级的东西(没有计算出来)(因为我不想复制),我希望继承的类在继承类的上下文中调用基类方法
我希望 man.[inherited]somemethod() 执行 person.somemethod() 但变量来自 man
谢谢你
【问题讨论】:
标签: c# inheritance