快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

给Asp.Net初学者的关于继续和多态性的例子

页面文件TestProfileClass2.aspx
<%@ Page Language=\"C#\" ContentType=\"text/html\" ResponseEncoding=\"gb2312\" Src=\"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 style=\"font:Arial, Helvetica, sans-serif \">
<b><h3>简朴的继续/多态例子</h3></b><br><br>
object output:<br>
<br>
<div 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());
   }
 }
}
}


返回类别: 教程
上一教程: 走近COM Interop??RCW入门
下一教程: 细细品味ASP.NET(三)

您可以阅读与"给Asp.Net初学者的关于继续和多态性的例子"相关的教程:
· .net 有关多态性的学习笔记。
· 在ASP.NET中操作文件的例子(VB)
· asp.net 关于form认证的一般设置
· .Net FrameWork SDK文档的例子演示
· .Net FrameWork SDK文档的例子演示
    微笑服务 优质保证 索取样品