日期:2010-07-31  浏览次数:20421 次

    本人学Asp.Net不久,用的是C#写代码,在学习C#中发现很多初学者对继承和多态性不是特别的了解,因此作了这个例子,希望对您有所帮助,例子很简单
  
  页面文件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类中的方法getP