使用共同的基类,可以是抽象类(abstract)也可以具体类(但是需要使用virtual修饰类成员),各自重载(override)基类中的虚方法(virtual)即可。
举个例子:
abstract class abc
{
abstract void doSomeThng( string str){};
abstract string param{get;set};
}
class ConcreClass1 : abc
{
//必须实现抽象类中的所有抽象成员
override doSomeThng(string str)
{
MessageBox.show("遛小狗");
}
}
class ConcreClass2 : abc
{
//必须实现抽象类中的所有抽象成员
override doSomeThng(string str)
{
MessageBox.show("看电视");
}
}
---------------------
多态:
class program
{
static main(string str[])
{
ConcreClass1 cc1 = new ConcreClass1 ();
ConcreClass2 cc2 = new ConcreClass12();
ConcreDo( cc1);
ConcreDo( cc2);
private string oo = "example";
void ConcreDo (abc para)
{
para.doSomeThng(oo);
}
}
}