28继承,委托,重写--[Asp.Net]

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("<br>眼睛"+aa.Yan+",手"+aa.Shou );
            Response.Write("<p>方法返回的是:"+aa.yanjin (3));

            man mrr = new man(23, "男", 5);
            Response.Write("<p>"+mrr.ManRen );
            Response.Write("<p>子类对象调用父类方法返回的是:" + mrr.yanjin(0));
            Response.Write("<p>子类对象调用父类方法返回的是:"+mrr.yanjin ("aa",5));
            Response.Write("<p>" + 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 ("<p>一起正常");
                }
            }

        }
    }
}

 

效果图:

原文地址:https://www.cnblogs.com/wangmei/p/4487898.html