一:Form2继承于Form1的两个button的风格,还有虚方法
结果
二:代码
Form1代码
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace 继承虚方法和重写 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } /// <summary> /// 显示消息,调用虚方法 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button2_Click(object sender, EventArgs e) { ShowMessage("hello"); } /// <summary> /// 虚方法 /// </summary> /// <param name="message"></param> protected virtual void ShowMessage(string message) { } } }
Form2代码
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace 继承虚方法和重写 { public partial class Form2 : Form1 { public Form2() { InitializeComponent(); } protected override void ShowMessage(string message) { MessageBox.Show("我是button2!"); } } }
三:简单总结
父类执行click事件,调用虚方法,虚方法调用重写的它的方法,执行子类的方法.
虚方法主要用来引入新方法,而重写方法则使从基类继承而来的虚方法专用化(提供虚方法的具体实现)。
将子类的重写方法改为如下图,也能显示父类的参数,
执行结果如下: