給Asp.Net初學(xué)者的關(guān)于繼承和多態(tài)性的例子(1)
2024-07-10 13:11:11
供稿:網(wǎng)友
本人學(xué)asp.net不久,用的是c#寫代碼,在學(xué)習(xí)c#中發(fā)現(xiàn)很多初學(xué)者對(duì)繼承和多態(tài)性不是特別的了解,因此作了這個(gè)例子,希望對(duì)您有所幫助,例子很簡(jiǎn)單
頁(yè)面文件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 >
<b><h3>簡(jiǎn)單的繼承/多態(tài)例子</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 //定義一個(gè)接口isavedata,他作為profile的基類被繼承,由于其有多態(tài)性的特點(diǎn),可以被
{ //不同類調(diào)用其中的方法,并修改
void save();
}
public class profile:isavedata //定義類profile
{
protected string _firstname; //里面包含三個(gè)屬性,分別為_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() //調(diào)用isavedata接口的save()方法
{
//保存數(shù)據(jù)為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();
}
}