| 
                         本人学Asp.Net不久,用的是C#写代码,在学习C#中发现很多初学者对继承和多态性不是特别的了解,因此作了这个例子,希望对您有所帮助,例子很简单 页面文件TestProfileClass2.aspx <%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" Src="http://www.jb51.net/article/profile2.cs" %> <%@ Import Namespace="shai" %> <html> <head> <style> div{font:Arial, Helvetica, sans-serif; background-color:#cccccc; border-color:black; border-width:1; border-style:solid; padding:10,10,10,10; } </style> <script language="c#" runat="server"> public void Page_Load(Object sender,EventArgs e) {   Profile profile = new Profile();   message.InnerHtml += "<u>Profile Class</u><br>";   message.InnerHtml += "Firstname:"+profile.getFirstname()+"<br>";   message.InnerHtml += "Lastname:"+profile.getLastname()+"<br>";   message.InnerHtml += "Phone:"+profile.getPhonenumber()+"<br><br>";
    profile.save();
    ExtendedProfile extendedprofile = new ExtendedProfile();   message.InnerHtml += "<u>ExtendedProfile Class</u></br>";   message.InnerHtml += "Firstname:"+profile.getFirstname()+"<br>";   message.InnerHtml += "Lastname:"+profile.getLastname()+"<br>";   message.InnerHtml += "Phone:"+extendedprofile.getPhonenumber()+"<br>";   message.InnerHtml += "Address1:"+extendedprofile.getAddress1()+"<br>";   message.InnerHtml += "Address2:"+extendedprofile.getAddress2()+"<br>";   message.InnerHtml += "City:"+extendedprofile.getCity()+"<br>";   message.InnerHtml += "State:"+extendedprofile.getState()+"<br>";   message.InnerHtml += "Postal:"+extendedprofile.getPostal()+"<br>";   message.InnerHtml += "Description:"+extendedprofile.getDescription()+"<br>";
    extendedprofile.save(); } </script> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title></title> </head> <body> <b><h3>简单的继承/多态例子</h3></b><br><br> object output:<br> <br> <div runat="server" /> </body> </html>  类定义文件profile2.cs using System; using System.IO; using System.Xml; namespace shai     //名称空间shai {   interface ISaveData    //定义一个接口ISaveData,他作为Profile的基类被继承,由于其有多态性的特点,可以被   {                                //不同类调用其中的方法,并修改     void save();   }
    public class Profile:ISaveData     //定义类Profile   {     protected string _firstname;       //里面包含三个属性,分别为_firstname、_lastname、phonenumber     protected string _lastname;     protected string _phonenumber;
   public Profile()                            //为属性定义其中的初始值  {    _firstname = "Saidy";    _lastname = "Chen";    _phonenumber = "(010)88716990";  }
   public string getPhonenumber()           //Profile类中的方法getPhonenumber()  {    return _phonenumber;  }  public virtual void setPhonenumber(string phonenumber)  {    _phonenumber = phonenumber;  }
   public string getFirstname()                 //Profile类中的方法getFirstname()  {    return _firstname;  }  public void setFirstname(string firstname)  {    _firstname = firstname;  }
   public string getLastname()                  //Profile类中的方法getLastname()  {    return _lastname;  }  public void setLastname(string lastname)  {    _lastname = lastname;  }
   public virtual void save()            //调用ISaveData接口的save()方法  {    //保存数据为Text格式    FileStream fs = new FileStream("D:myweb2profile2.txt",FileMode.Create,FileAccess.Write);    StreamWriter sw = new StreamWriter(fs);    sw.WriteLine("Firstname:"+_firstname.ToString());    sw.WriteLine("Lastname:"+_lastname.ToString());    sw.WriteLine("Phone:"+_phonenumber.ToString());    sw.Flush();    sw.Close();    fs.Close();   } }
    public class ExtendedProfile:Profile        建立Profile子类ExtendedProfile,他可以继承Profile中的方法   {     protected string _address1;                  //子类ExtendedProfile的属性     protected string _address2;     protected string _city;     protected string _state;     protected string _postal;     protected string _description;
   public ExtendedProfile()                      //子类ExtendedProfile中属性的初始值  {    _address1 = "清华大学";    _address2 = "清华大学物理实验室";    _city = "北京";    _state = "北京";    _postal = "100024";    _description = "教授";  }
   public override void setPhonenumber(string phonenumber)           //继承类Profile中的setPhonenumber()方法  {                                                                                                 //setPhonenumber()方法的重载    _phonenumber = phonenumber;  }
   public string getAddress1()          //子类ExtendedProfile中的方法getAddress1(),以下类推  {    return _address1;  }  public string getAddress2()   {    return _address2;  }  public void setAddress(string address1,string address2)  {    _address1 = address1;    _address2 = address2;  }
   public string getCity()  {    return _city;  }  public void setCity(string city)  {    _city = city;  }
   public string getState()  {    return _state;  }  public void setState(string state)  {    _state = state;  }
   public string getPostal()  {    return _postal;  }  public void setPostal(string postal)  {    _postal = postal;  }
   public string getDescription()  {    return _description;  }  public void setDescription(string description)  {    _description = description;  }
   public override void save()                //调用接口ISaveData()中的方法save(),save()方法的重载,由于多态性  {                                                       //子类ExtendedProfile可以自定义并修改save()方法    string _document = "d:myweb2saidy.xml";    XmlTextWriter writer = null;           //保存为一个Xml文件    try    {     writer = new XmlTextWriter(_document,null);     writer.Formatting = Formatting.Indented;     writer.WriteStartDocument(false);     writer.WriteDocType("Profile",null,null,null);            //表示<!DOCTYPE Profile>     writer.WriteStartElement("Profile");                         //生成根元素        writer.WriteElementString("firstname",_firstname);   //生成子元素  <firstname>_firstname</firstname>     writer.WriteElementString("lastname",_lastname);     writer.WriteElementString("phonenumber",_phonenumber);     writer.WriteElementString("address1",_address1);     writer.WriteElementString("address2",_address2);     writer.WriteElementString("city",_city);     writer.WriteElementString("state",_state);     writer.WriteElementString("postal",_postal);   writer.WriteEndElement();   writer.Flush();   writer.Close();    }    catch(Exception ee)    {      Console.WriteLine("Exception:{0}",ee.ToString());    }  } } }                         (编辑:52站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |