特色栏目

ASP源码

PHP源码

.NET源码

JSP源码

游戏频道
专题合集
关闭菜单
首页> ASP.NET教程> 给Asp.Net初学者的关于继承和多态性的例子

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

时间:2009-06-30 15:29:35 作者:互联网

本人学Asp.Net不久,用的是C#写代码,在学习C#中发现很多初学者对继承和多态性不是特别的了解,因此作了这个例子,希望对您有所帮助,例子很简单

页面文件Te***rofileClass2.aspx
<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" Src="pr***le2.cs" %>
<%@ Import Namespace="shai" %>








简单的继承/多态例子




object output:






类定义文件pr***le2.cs
using System;
using Sy***m.IO;
using Sy***m.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\pr***le2.txt",Fi***ode.Create,Fi***ccess.Write);
   StreamWriter sw = new StreamWriter(fs);
   sw***iteLine("Firstname:"+_f***tname.ToString());
   sw***iteLine("Lastname:"+_l***name.ToString());
   sw***iteLine("Phone:"+_p***enumber.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\sa***.xml";
   XmlTextWriter writer = null;           //保存为一个Xml文件
   try
   {
    writer = new XmlTextWriter(_document,null);
    wr***r.Formatting = Fo***tting.Indented;
    wr***r.WriteStartDocument(false);
    wr***r.WriteDocType("Profile",null,null,null);            //表示
    wr***r.WriteStartElement("Profile");                         //生成根元素  
    wr***r.WriteElementString("firstname",_firstname);   //生成子元素  _firstname
    wr***r.WriteElementString("lastname",_lastname);
    wr***r.WriteElementString("phonenumber",_phonenumber);
    wr***r.WriteElementString("address1",_address1);
    wr***r.WriteElementString("address2",_address2);
    wr***r.WriteElementString("city",_city);
    wr***r.WriteElementString("state",_state);
    wr***r.WriteElementString("postal",_postal);
  wr***r.WriteEndElement();
  wr***r.Flush();
  wr***r.Close();
   }
   catch(Exception ee)
   {
     Co***le.WriteLine("Exception:{0}",ee***String());
   }
 }
}
}

返回顶部