日期:2014-05-17  浏览次数:20782 次

小例子大智慧2--C#中的多态Polymorphism

以上篇的实体类型为引子,我就直接贴过来了:

Person实例类型:

 public class Person
    {
        public string Name;

        public string Sex;

        public int Age;

        //构造函数,初始化
        public Person()
        {
            this.Name = "张三";
            this.Sex = "男";
            this.Age = 30;
        }

        public string SayHi()
        {
            return "Hell!How are you?";
        }

        //virtual修饰符进行修饰来启用多态
        public virtual string Hello()
        {
            return "Hell!How are you?";
        }
    }

加了一个Hello方法,并且看到有个字符去修饰,目的就是为了实现重写

Student实例类型:

 public class Student : Person
    {

        public int CJ;

        //构造函数,初始化
        public Student()
        {
            this.CJ = 90;
        }

        public  string SayHi()//使用new有意隐藏基类方法
        {
            return "你好啊!....";
        }

        public override string Hello()//重写
        {
            return "你好啊!....";
        }
    }

override重写hello方法,实现多态

页面aspx页面的设计

<body>
    <form id="form1" runat="server">
    <div>
        不用重写多态:<br />
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label><br />
        <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label><br />
        重写多态:<br />
        <asp:Label ID="Label3" runat="server" Text="Label"></asp:Label><br />
        <asp:Label ID="Label4" runat="server" Text="Label"></asp:Label>
    </div>
    </form>
</body>

后台.cs文件中代码

 protected void Page_Load(object sender, EventArgs e)
&