C#多态访问接口方法
static void Main(string[] args)
{
DerivedClass sww= new DerivedClass();
BaseClass sd = sww;
// Console.Write(sd.ToString());
sd.DoWork();
// sww.DoWork();
// Iwangge shenme = sww;
// shenme.DoWork();
}
}
public class BaseClass :Iwangge
{
public void DoWork() { }
public virtual int WorkProperty
{
get { return 0; }
}
}
public class DerivedClass : BaseClass,Iwangge
{
public void DoWork() { }
public static void sdsss()
{ }
public override int WorkProperty
{
get { return 0; }
}}
public interface Iwangge
{
void DoWork();
}
}
//sd.DoWork();访问的为什么是基类中的dowork方法,他不是派生类的引用吗
你对多态理解有误解,还是我理解有误解,我理解是花做一个基类,玫瑰做一个派生类,玫瑰是花,但是不是所有的花都是玫瑰,这是我理解的,但是LZ上面的好像是花是玫瑰了 基类中的方法要被重写才算是多态...
你这里就相当于:基类和派生类都各自有自己的 DoWork()方法.
其实,有一点很重要:当调用派生类的构造方法时,是先会去调用父类对应的构造方法.所以,这里不是只产生了派生类的对象.
这里主要是你没有override父类的方法....所以是基类的...