国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

給Asp.Net初學者的關于繼承和多態性的例子

2024-07-10 12:56:22
字體:
來源:轉載
供稿:網友
本人學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();
}
}

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());
}
}
}
}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 岢岚县| 永宁县| 巩留县| 大兴区| 海宁市| 遵义县| 凤翔县| 襄樊市| 凤翔县| 错那县| 长顺县| 洛川县| 牟定县| 阿坝县| 成安县| 东乌| 永德县| 乐业县| 邓州市| 沁水县| 独山县| 淮北市| 西盟| 长岭县| 永顺县| 柞水县| 白河县| 云龙县| 甘孜| 秦皇岛市| 莫力| 葵青区| 定州市| 西贡区| 罗平县| 抚远县| 故城县| 伊金霍洛旗| 五常市| 莱阳市| 项城市|