using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;namespace demo5{ public partial class jicheng : System.Web.UI.Page { public class ren { protected int yan; protected int shou; public delegate void RenChengHender(string s, int e);//委托 public event RenChengHender RenChenged;//事件 //构造函数 public ren() { yan = 1; shou = 2; } public ren(int y, int s) { yan = y; shou = s; } //属性 public int Yan { get { return yan; } set { yan = value; string s = "yan"; //如果改写,触发该事件 RenChenged(s, value); } } public int Shou { get { return shou; } set { shou = value; string s = "shou"; RenChenged(s, value); } } //方法 public string yanjin(int y) { switch (y) { case 0: return "眼睛是心灵的窗户"; break ; case 1: return "还要"; break; case 2: return "不错哦"; break; default : return "假的。。。"; break; } } } public class man : ren { private int age; private string sex; //构造函数 public man(int a, string s, int y) : base(6, 888) { age = a; sex = s; yan = y; } public string ManRen { get { return "一个" + sex + "人,他有" + yan + "只眼睛和" + shou + "只手" + age + "岁了"; } } public string suibian() { return base.shou.ToString() + "," + this.yan.ToString(); } public string yanjin(string a, int s) { return a + "和" + s; } public new string yanjin(int y) { string bl = base.yanjin(y); return "父类方法被覆写,现在返回是:" + y + "我们调用基类同名方法所的结果为" + bl; } } protected void Page_Load(object sender, EventArgs e) {//创建一个人事件 ren aa = new ren(2, 2); //赋值,注册一个事件 aa.RenChenged += new ren.RenChengHender(aa_RenChenged); aa.Yan = 3; aa.Shou = 2; Response.Write("眼睛"+aa.Yan+",手"+aa.Shou ); Response.Write("方法返回的是:"+aa.yanjin (3)); man mrr = new man(23, "男", 5); Response.Write("
"+mrr.ManRen ); Response.Write("
子类对象调用父类方法返回的是:" + mrr.yanjin(0)); Response.Write("
子类对象调用父类方法返回的是:"+mrr.yanjin ("aa",5)); Response.Write("
" + mrr.suibian()); } void aa_RenChenged(string s, int e) { if (s == "yan") { if (e == 3) { Response.Write("我不信,那个有三只眼睛"); } } if (s == "shou") { if (e==2) { Response.Write ("
一起正常"); } } } }}
效果图: