首页后端开发ASP.NET关于继承和多态性的实例代码

关于继承和多态性的实例代码

时间2024-01-30 12:16:02发布访客分类ASP.NET浏览882
导读:收集整理的这篇文章主要介绍了关于继承和多态性的实例代码,觉得挺不错的,现在分享给大家,也给大家做个参考。本人学Asp.Net不久,用的是C#写代码,在学习C#中发现很多初学者对继承和多态性不是特别的了解,因此作了这个例子,希望对您有所帮助,...
收集整理的这篇文章主要介绍了关于继承和多态性的实例代码,觉得挺不错的,现在分享给大家,也给大家做个参考。本人学Asp.Net不久,用的是C#写代码,在学习C#中发现很多初学者对继承和多态性不是特别的了解,因此作了这个例子,希望对您有所帮助,例子很简单

页面文件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>
    h3>
    简单的继承/多态例子/h3>
    /b>
    br>
    br>
    object output:br>
    br>
    p id="message" runat="server" />
    /body>
    /html>
    类定义文件profile2.csusing 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());
   }
 }
}
}
    

以上就是关于继承和多态性的实例代码的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

继承

若转载请注明出处: 关于继承和多态性的实例代码
本文地址: https://pptw.com/jishu/592508.html
详解关于Blog实现一个日历的实例教程 浅析Angular中怎么导入本地JSON文件

游客 回复需填写必要信息