在.net中,关于基类和类,接口之间的调用我们可以理解为引用,或则指针。
比如我们申明一个类BaseClass,接口Inferface,让一个类ChildClass继承它们。我们可以实例化一个子类,我可以把这个子类给基类,给接口,我们给它们的是引用,当然你没有继承它们你是不能给它们的。这里又涉及到了用接口调用方法。
同时,如果我们不想在ControlInput类里面实现接口的方法,那么我们可以把这些方法放在父类里面实现,如果父类里面也继承了InterfaceBase,InterfaceBase2接口,那么它们会公用这些接口实现方法(父类和派生类俗称子类公用这些父类实现的方法)。如果父类没有继承InterfaceBase,InterfaceBase2这些接口,而我们在里面实现了接口的方法,这无疑不是是一个不错的选择,这样我就可以不用在ControlInput里面再具体写接口的这些实现方法,当然也可以override重新写这些方法。
也就是把ControlInput里面的方法剪切到BaseClass里面,是一个不错的选择
那么在父类里面实现接口Infterface.EventFunction(xxx);大致说明下代码如下
class ControlInput:BaseClass, InterfaceBase,InterfaceBase2
{ {
public void SayHello(string s)
{
Console.WriteLine(s + " I am Control already say Hello");
}
public void SayBye(int count)
{
for (int i = 0; i < count; i++)
{
Console.WriteLine();
Console.WriteLine(" I am Control sayBye " + i);
}
}
}
}
class BaseClass;
interface InterfaceBase2;
interface InterfaceBase
{
void SayHello(string s);
void SayBye(int count);
}
Main()
{
InterfaceBase2 in2 = null;
ControlInput ci = new ControlInput();
in2 = ci;
InterfaceBase in1 = in2 as InterfaceBase;
in1.SayBye(2);
Console.WriteLine();
ci.SayBye(1);
}