您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Asp.Net中繼承和多態(tài)性的示例分析”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Asp.Net中繼承和多態(tài)性的示例分析”這篇文章吧。
頁(yè)面文件TestProfileClass2.aspx
<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" Src="profile2.cs" %> <%@ Import Namespace="shai" %> <html> <head> <style> p{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 style="font:Arial, Helvetica, sans-serif "> <b><h4>簡(jiǎn)單的繼承/多態(tài)例子</h4></b><br><br> object output:<br> <br> <p id="message" runat="server" /> </body> </html> 類定義文件profile2.cs using System; using System.IO; using System.Xml; namespace shai //名稱空間shai { interface ISaveData //定義一個(gè)接口ISaveData,他作為Profile的基類被繼承,由于其有多態(tài)性的特點(diǎn),可以被 { //不同類調(diào)用其中的方法,并修改 void save(); } public class Profile:ISaveData //定義類Profile { protected string _firstname; //里面包含三個(gè)屬性,分別為_(kāi)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() //調(diào)用ISaveData接口的save()方法 { //保存數(shù)據(jù)為Text格式 FileStream fs = new FileStream("D:\\myweb2\\profile2.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 = "清華大學(xué)"; _address2 = "清華大學(xué)物理實(shí)驗(yàn)室"; _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() //調(diào)用接口ISaveData()中的方法save(),save()方法的重載,由于多態(tài)性 { //子類ExtendedProfile可以自定義并修改save()方法 string _document = "d:\\myweb2\\saidy.xml"; XmlTextWriter writer = null; //保存為一個(gè)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()); } } } }
以上是“Asp.Net中繼承和多態(tài)性的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。