給Asp.Net初學者的關於繼承和多態性的例子(1)
來源:互聯網
上載者:User
asp.net|初學|繼承 本人學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類中的方法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();
}
}