Asp.Net中繼承和多態性的示例分析

這篇文章主要為大家展示了“Asp.Net中繼承和多態性的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Asp.Net中繼承和多態性的示例分析”這篇文章吧。

創新互聯主要從事成都網站建設、成都網站設計、網頁設計、企業做網站、公司建網站等業務。立足成都服務岳陽,10余年網站建設經驗,價格優惠、服務專業,歡迎來電咨詢建站服務:18982081108

頁面文件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>簡單的繼承/多態例子</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    //定義一個接口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:\\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 = "清華大學";
   _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:\\myweb2\\saidy.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());
   }
 }
}
}

以上是“Asp.Net中繼承和多態性的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創新互聯行業資訊頻道!

新聞名稱:Asp.Net中繼承和多態性的示例分析
當前URL:http://m.kartarina.com/article30/gesgso.html

成都網站建設公司_創新互聯,為您提供域名注冊全網營銷推廣網站維護響應式網站網站策劃服務器托管

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都定制網站網頁設計
主站蜘蛛池模板: 精品无码久久久久久久久久| 91精品久久久久久无码| 亚洲av无码国产精品色在线看不卡 | 日韩人妻无码一区二区三区99| 亚洲国产精品无码久久一线| 久久久久久AV无码免费网站下载| 无码AV片在线观看免费| 无码人妻精品一区二区蜜桃 | 亚洲中文无码mv| 无码毛片一区二区三区中文字幕 | 日韩精品无码一区二区三区免费| 人妻丰满熟妞av无码区| 日日摸日日碰人妻无码| 亚洲熟妇无码爱v在线观看| 一本之道高清无码视频| 久久精品无码专区免费东京热 | 亚洲男人第一无码aⅴ网站| 日韩精品真人荷官无码| h无码动漫在线观看| 亚洲精品无码久久久久久| 曰韩精品无码一区二区三区 | 国产精品爽爽V在线观看无码| 亚洲精品无码久久千人斩| 人妻无码久久中文字幕专区| 亚洲Aⅴ在线无码播放毛片一线天| 国精无码欧精品亚洲一区| 韩国无码AV片在线观看网站| 久久亚洲AV成人无码软件| 亚洲日韩欧洲无码av夜夜摸| 好了av第四综合无码久久| 精品无码一区二区三区爱欲九九| 狠狠躁夜夜躁无码中文字幕| 国产精品无码亚洲精品2021| 免费A级毛片无码A∨中文字幕下载| 无码人妻一区二区三区在线水卜樱 | YY111111少妇无码理论片| 精品久久久久久中文字幕无码 | 亚洲AV无码精品色午夜果冻不卡 | 亚洲av专区无码观看精品天堂| 中文字幕人妻无码专区| 在线精品自拍无码|