基类访问与基类引用
大家好请问一下:使用基类base来读取之前用派生类new隐藏基类公共成员变量baseclass,
例如:Console.WriteLine(base.baseclass);
和
使用基类引用,将派生类实例化之后使用其实力话之后的对象来将之前所定义的基类转化为基类,然后输出。
例如:MyDerivedClass derived = new MyDerivedClass(); MyBaseClass mybc = (MyBaseClass)derived;
这里两个都是让派生类所隐藏了的基类重新输出。但是方法截然不同,请问他们有什么不同之处吗???
这个是我自己写的例子方便大家理解我的问题!!!!
代码:
class MyBaseClass
{
public string baseclass = "第一个";
public void Print()
{
Console.WriteLine("这是我的基类");
}
}
class MyDerivedClass:MyBaseClass
{
new public string baseclass = "第二个";
new public void Print()
{
Console.WriteLine("这是我的派生类");
}
public void Print2()
{
Console.WriteLine("没有使用base:{0}", baseclass);
Console.WriteLine("有使用base;{0}",base.baseclass);
}
}
class Program
{
static void Main(string[] args)
{
MyDerivedClass derived = new MyDerivedClass();
MyBaseClass mybc = (MyBaseClass)derived;
derived.Print();
mybc.Print();
derived.Print2();
Console.ReadLine();
}
}
[ 本帖最后由 czg123698741 于 2009-10-29 16:24 编辑 ]