您的位置:首页 > 编程语言 > C#

c# interface virtual ,abstract ,多态实例

2009-01-13 09:58 309 查看
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
}

private void button1_Click(object sender, EventArgs e)
{
ClassA a = new ClassA();
a.show();
}

private void button2_Click(object sender, EventArgs e)
{
ClassA b = new ClassB();
b.show();
}

private void button3_Click(object sender, EventArgs e)
{
ClassA c = new ClassC();
c.show();
}

private void button4_Click(object sender, EventArgs e)
{
IMath m_math = new Math();
int c=m_math.add(1, 2);
MessageBox.Show(c.ToString());
}

private void button5_Click(object sender, EventArgs e)
{
IMath m_math = new MathEx();
int c=m_math.multipy(1, 2);
MessageBox.Show(c.ToString());
}

private void button6_Click(object sender, EventArgs e)
{
IMath m_math = new MathClass();
int c=m_math.add(1, 2);
MessageBox.Show(c.ToString());
}

private void button7_Click(object sender, EventArgs e)
{
Math m_math = new MathClass();
int c=m_math.Cal(1,2);
MessageBox.Show(c.ToString());
}
}

#region 多重继承

public class ClassA
{
public virtual void show()
{
MessageBox.Show("class A show");
}
}

public class ClassB : ClassA
{
public override void show()
{
MessageBox.Show("class B show");
base.show();
}
}

public class ClassC : ClassB
{
public override void show()
{
MessageBox.Show("class C show");
return;
}
}

#endregion

#region 虚方法

//虚方法的函数
abstract public class Worker
{
abstract public void DoSomething();
public virtual void Dispaly()
{
MessageBox.Show("Worker display");
}
}

public class Manger : Worker
{
public override void DoSomething()
{
MessageBox.Show("Manger do something");
//throw new Exception("The method or operation is not implemented.");
}

public override void Dispaly()
{
MessageBox.Show("manger display");
}
}

public class Boss : Manger
{
public override void DoSomething()
{
MessageBox.Show("Boss Do something");
//base.DoSomething();
}
public override void Dispaly()
{
MessageBox.Show("Boss Display");
}
}

#endregion

#region 接口函数

public interface IMath
{
int add(int a, int b);
int multipy(int a, int b);

}
public class Math : IMath
{
public int add(int a, int b)
{
return a + b;
}
public virtual int multipy(int a, int b)
{
return a * b;
}

public virtual int Cal(int a, int b)
{
return a - b;
}
}
public class MathEx : Math
{
public override int multipy(int a, int b)
{
return a * b * a+a+b;
//return base.multipy(a, b);
}
}

public class MathClass : Math, IMath
{
public void Do()
{
MessageBox.Show("Do mathclass");
}
}

#endregion
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: