Asp.Net的繼承和多態(tài)性實(shí)例講解_.Net教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:讓沒有安裝.NET Framwork的機(jī)器運(yùn)行.NET 程序
      如果我們要把自己的. NET 程序發(fā)布到目標(biāo)機(jī)器上,同時(shí)我們不確定該目標(biāo)機(jī)器是否已經(jīng)安裝了.NETFramework,那我們就需要自己設(shè)計(jì)一段unmanaged代碼,來判斷目標(biāo)機(jī)器是否安裝了.NETFramework,如果沒有,則運(yùn)行Dotnetfx.exe安裝.NETFramework,然后利用WindowsIns

      許多學(xué)習(xí)Asp.Net的新人對(duì)Asp.Net繼承和多態(tài)性不是特別的了解,但其在編程中有重要作用,為了幫助大家學(xué)習(xí),我們作了這個(gè)例子,以實(shí)例來說明,代碼比較簡單。

      TestProfileClass2.aspx 頁面文件
      <%@PageLanguage="C#"ContentType="text/html"ResponseEncoding="gb2312"Src="profile2.cs"%>
      <%@ImportNamespace="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>
      <scriptlanguage="c#"runat="server">
      publicvoidPage_Load(Objectsender,EventArgse)
      {
      Profileprofile=newProfile();
      message.InnerHtml+="<u>ProfileClass</u><br>";
      message.InnerHtml+="Firstname:"+profile.getFirstname()+"<br>";
      message.InnerHtml+="Lastname:"+profile.getLastname()+"<br>";
      message.InnerHtml+="Phone:"+profile.getPhonenumber()+"<br><br>";

      profile.save();

      ExtendedProfileextendedprofile=newExtendedProfile();
      message.InnerHtml+="<u>ExtendedProfileClass</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>
      <metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
      <title></title>
      </head>
      <bodystyle="font:Arial,Helvetica,sans-serif">
      <b><h3>簡單的繼承、多態(tài)例子</h3></b><br><br>
      objectoutput:<br>
      <br>
      <divid="message"runat="server"/>
      </body>
      </html> 
      profile2.cs  類定義文件
      usingSystem;
      usingSystem.IO;
      usingSystem.Xml;
      namespaceshai//名稱空間shai
      {
      interfaceISaveData//定義一個(gè)接口ISaveData,他作為Profile的基類被繼承,由于其有多態(tài)性的特點(diǎn),可以被
      {//不同類調(diào)用其中的方法,并修改
      voidsave();
      }

      publicclassProfile:ISaveData//定義類Profile
      {
      protectedstring_firstname;//里面包含三個(gè)屬性,分別為_firstname、_lastname、phonenumber
      protectedstring_lastname;
      protectedstring_phonenumber;

      publicProfile()//為屬性定義其中的初始值
      {
      _firstname="Saidy";
      _lastname="Chen";
      _phonenumber="(010)88716990";
      }

      publicstringgetPhonenumber()//Profile類中的方法getPhonenumber()
      {
      return_phonenumber;
      }
      publicvirtualvoidsetPhonenumber(stringphonenumber)
      {
      _phonenumber=phonenumber;
      }

      publicstringgetFirstname()//Profile類中的方法getFirstname()
      {
      return_firstname;
      }
      publicvoidsetFirstname(stringfirstname)
      {
      _firstname=firstname;
      }

      publicstringgetLastname()//Profile類中的方法getLastname()
      {
      return_lastname;
      }
      publicvoidsetLastname(stringlastname)
      {
      _lastname=lastname;
      }

      publicvirtualvoidsave()//調(diào)用ISaveData接口的save()方法
      {
      //保存數(shù)據(jù)為Text格式
      FileStreamfs=newFileStream("D:\\myweb2\\profile2.txt",FileMode.Create,FileAccess.Write);
      StreamWritersw=newStreamWriter(fs);
      sw.WriteLine("Firstname:"+_firstname.ToString());
      sw.WriteLine("Lastname:"+_lastname.ToString());
      sw.WriteLine("Phone:"+_phonenumber.ToString());
      sw.Flush();
      sw.Close();
      fs.Close();
      }
      }

      publicclassExtendedProfile:Profile建立Profile子類ExtendedProfile,他可以繼承Profile中的方法
      {
      protectedstring_address1;//子類ExtendedProfile的屬性
      protectedstring_address2;
      protectedstring_city;
      protectedstring_state;
      protectedstring_postal;
      protectedstring_description;

      publicExtendedProfile()//子類ExtendedProfile中屬性的初始值
      {
      _address1="清華大學(xué)";
      _address2="清華大學(xué)物理實(shí)驗(yàn)室";
      _city="北京";
      _state="北京";
      _postal="100024";
      _description="教授";
      }

      publicoverridevoidsetPhonenumber(stringphonenumber)//繼承類Profile中的setPhonenumber()方法
      {//setPhonenumber()方法的重載
      _phonenumber=phonenumber;
      }

      publicstringgetAddress1()//子類ExtendedProfile中的方法getAddress1(),以下類推
      {
      return_address1;
      }
      publicstringgetAddress2()
      {
      return_address2;
      }
      publicvoidsetAddress(stringaddress1,stringaddress2)
      {
      _address1=address1;
      _address2=address2;
      }

      publicstringgetCity()
      {
      return_city;
      }
      publicvoidsetCity(stringcity)
      {
      _city=city;
      }

      publicstringgetState()
      {
      return_state;
      }
      publicvoidsetState(stringstate)
      {
      _state=state;
      }

      publicstringgetPostal()
      {
      return_postal;
      }
      publicvoidsetPostal(stringpostal)
      {
      _postal=postal;
      }

      publicstringgetDescription()
      {
      return_description;
      }
      publicvoidsetDescription(stringdescription)
      {
      _description=description;
      }

      publicoverridevoidsave()//調(diào)用接口ISaveData()中的方法save(),save()方法的重載,由于多態(tài)性
      {//子類ExtendedProfile可以自定義并修改save()方法
      string_document="d:\\myweb2\\saidy.xml";
      XmlTextWriterwriter=null;//保存為一個(gè)Xml文件
      try
      {
      writer=newXmlTextWriter(_document,null);
      writer.Formatting=Formatting.Indented;
      writer.WriteStartDocument(false);
      writer.WriteDocType("Profile",null,null,null);//表示<!DOCTYPEProfile>
      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(Exceptionee)
      {
      Console.WriteLine("Exception:{0}",ee.ToString());
      }
      }
      }
      }

      分享:asp.net+js實(shí)現(xiàn)網(wǎng)頁打印
      網(wǎng)頁打印是我們經(jīng)常要遇到的需求,下面的方法可以較好的解決這個(gè)問題。 循環(huán)打印div中的內(nèi)容: inputtype=buttononClick=j avascript :printpage(’’myDiv’’);value=打印 流程: 從數(shù)據(jù)庫中取出記錄-》放入 aspx 頁面的一個(gè)Div中打印 例子: 在asp

      來源:模板無憂//所屬分類:.Net教程/更新時(shí)間:2012-06-12
      相關(guān).Net教程