public class Baseclass
{
private int mTotal = 0;
private int mID = 0;
public int Total
{
get { return mTotal; }
set { mTotal = value;}
}
public int ID
{
get { return mID; }
set { mID = value;}
}
}
public class Derivedclass : Baseclass
{
private int mX = 0;
private int mY = 0;
public int X
{
get { return mX; }
set
{
mX = value;
Total = Total + mX;
}
}
public int Y
{
get { return mY; }
set
{
mY = value;
Total = Total + mY;
}
}
}
public partial class Test : Page
{
Baseclass B = new Baseclass();
Derivedclass D = new Derivedclass();
public Test()
{
Calculate();
}
public void Calculate()
{
for(int i =1; i <5 ;i++)
{
B.ID = i;
for (int j = 0; j < 5; j++)
{
D.X = j;
D.Y = j;
}
MessageBox.Show("ID " + B.ID + " Total Sum" + B.Total);
B.Total = 0;
}
}
// Out put should be
// ID 1 Total Sum 16
// ID 2 Total Sum 16
// ID 3 Total Sum 16
// ID 4 Total Sum 16
}
在这里,我有两个类,Baseclass和derivedclass。我想找出在派生类中的x和y属性的总和,并将总和设置为基类的Total属性,而我想要的应该是这样的
// ID 1 Total Sum 16
// ID 2 Total Sum 16
// ID 3 Total Sum 16
如果要引用任何继承的成员,则可以只使用属性名称,如上所示。如果名称冲突,或者您想更清楚一点,可以使用base关键字,如下所示:
base.Total = 15;
这是有关基本关键字的MSDN文章:http : //msdn.microsoft.com/zh-cn/library/hfw7t1ce.aspx
不过,似乎您对继承的概念有些困惑。Baseclass实例与Derivedclass实例没有任何关系,反之亦然,因为它们是完全独立的对象,彼此之间没有引用。继承控制类具有的成员-字段,属性和方法,并允许派生类重用其父级的代码,同时将其功能扩展到更具体的用例。简而言之,您的B和D对象永远都不会互相交谈,而这实际上并不是继承的重点。
因此,在没有无用的B对象的情况下,您的Calculate方法应如下所示:
public void Calculate()
{
for(int i = 1; i < 5; i++)
{
D.ID = i;
for (int j = 0; j < 5; j++)
{
D.X = j;
D.Y = j;
}
MessageBox.Show("ID " + D.ID + " Total Sum" + D.Total);
D.Total = 0;
}
}
此版本的Calculate()将显示以下内容:
ID 1 Total Sum 20
ID 2 Total Sum 20
ID 3 Total Sum 20
ID 4 Total Sum 20
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句