Недавно я изучил Asp.Net и использовал C# для написания кода. Изучая C#, я обнаружил, что многие новички не имеют специального понимания наследования и полиморфизма, поэтому я надеюсь, что он будет вам полезен. пример очень простой.
Страница FileTestProfileClass2.aspx.
<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" Src="profile2.cs" %>
<%@ Import Namespace="shai" %>
<html>
<голова>
<стиль>
div{font:Arial, Helvetica, без засечек;
цвет фона:#cccccc;
цвет границы: черный;
ширина границы: 1;
стиль границы: сплошной;
дополнение: 10,10,10,10;
}
</стиль>
<script Language="c#" runat="server">
public void Page_Load (отправитель объекта, EventArgs e)
{
Профиль профиля = новый профиль();
message.InnerHtml += "<u>Класс профиля</u><br>";
message.InnerHtml += "Имя:"+profile.getFirstname()+"<br>";
message.InnerHtml += "Фамилия:"+profile.getLastname()+"<br>";
message.InnerHtml += "Телефон:"+profile.getPhonenumber()+"<br><br>";
профиль.сохранить();
ExtendedProfile расширенный профиль = новый ExtendedProfile();
message.InnerHtml += "<u>Класс ExtendedProfile</u></br>";
message.InnerHtml += "Имя:"+profile.getFirstname()+"<br>";
message.InnerHtml += "Фамилия:"+profile.getLastname()+"<br>";
message.InnerHtml += "Телефон:"+extendedprofile.getPhonenumber()+"<br>";
message.InnerHtml += "Адрес1:"+extendedprofile.getAddress1()+"<br>";
message.InnerHtml += "Адрес2:"+extendedprofile.getAddress2()+"<br>";
message.InnerHtml += "Город:"+extendedprofile.getCity()+"<br>";
message.InnerHtml += "State:"+extendedprofile.getState()+"<br>";
message.InnerHtml += "Postal:"+extendedprofile.getPostal()+"<br>";
message.InnerHtml += "Описание:"+extendedprofile.getDescription()+"<br>";
расширенныйпрофиль.сохранить();
}
</скрипт>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
</голова>
<body style="font:Arial, Helvetica, без засечек">
<b><h3>Простой пример наследования/полиморфизма</h3></b><br><br>
вывод объекта:<br>
<br>
<div id="message" runat="server" />
</тело>
</html>
Файл определения класса Profile2.cs
использование системы;
использование System.IO;
использование System.Xml;
пространство имен shai // пространство имен shai
{
интерфейс ISaveData //Определите интерфейс ISaveData, который наследуется как базовый класс Profile. Благодаря своим полиморфным характеристикам он может быть.
{ //Разные классы вызывают методы и изменяют их
недействительное сохранение();
}
public class Profile:ISaveData //Определение профиля класса
{
protected string _firstname; // Содержит три атрибута, а именно _firstname, _lastname, номер телефона.
защищенная строка _lastname;
защищенная строка _phonenumber;
public Profile() //Определяем начальное значение свойства
{
_firstname = "Саиди";
_lastname = "Чен";
_phonenumber = "(010)88716990";
}
публичная строка getPhonenumber() //Метод getPhonenumber() в классе профиля
{
вернуть _phonenumber;
}
public virtual void setPhonenumber (строковый номер телефона)
{
_phonenumber = номер телефона;
}
публичная строка getFirstname() //Метод getFirstname() в классе Profile
{
вернуть _имя;
}
public void setFirstname(строковое имя)
{
_firstname = имя;
}
публичная строка getLastname() //Метод getLastname() в классе Profile
{
вернуть _фамилию;
}
public void setLastname (строковая фамилия)
{
_lastname = фамилия;
}
public virtual void save() //Вызов метода save() интерфейса ISaveData
{
//Сохраняем данные в текстовом формате
FileStream fs = новый FileStream("D:\myweb2\profile2.txt", FileMode.Create, FileAccess.Write);
StreamWriter sw = новый StreamWriter (фс);
sw.WriteLine("Имя:"+_firstname.ToString());
sw.WriteLine("Фамилия:"+_lastname.ToString());
sw.WriteLine("Телефон:"+_phonenumber.ToString());
sw.Flush();
SW.Закрыть();
фс.Закрыть();
}
}
общедоступный класс ExtendedProfile:Profile создает подкласс Profile ExtendedProfile, который может наследовать методы Profile
{
protected string _address1 //Атрибуты подкласса ExtendedProfile;
защищенная строка _address2;
защищенная строка _city;
защищенная строка _state;
защищенная строка _postal;
защищенная строка _description;
public ExtendedProfile() //Начальное значение атрибутов в подклассе ExtendedProfile
{
_address1 = "Университет Цинхуа";
_address2 = "Физическая лаборатория Университета Цинхуа";
_city = "Пекин";
_state = "Пекин";
_postal = "100024";
_description = "Профессор";
}
public override void setPhonenumber(string phonenumber) //Наследуем метод setPhonenumber() в классе Profile
{ //Перегрузка метода setPhonenumber()
_phonenumber = номер телефона;
}
public string getAddress1() //Метод getAddress1() в подклассе ExtendedProfile и т. д.
{
вернуть _адрес1;
}
общедоступная строка getAddress2()
{
вернуть _адрес2;
}
public void setAddress (строка адреса1, строка адреса2)
{
_адрес1 = адрес1;
_адрес2 = адрес2;
}
публичная строка getCity()
{
вернуть _город;
}
public void setCity (строка города)
{
_город = город;
}
общедоступная строка getState()
{
вернуть _state;
}
public void setState (состояние строки)
{
_state = состояние;
}
общедоступная строка getPostal()
{
вернуть _postal;
}
public void setPostal (почтовая строка)
{
_postal = почтовый;
}
общедоступная строка getDescription()
{
вернуть _описание;
}
public void setDescription (описание строки)
{
_description = описание;
}
public override void save() //Вызов метода save() в интерфейсе ISaveData(), перегрузка метода save(), из-за полиморфизма
{ //Подкласс ExtendedProfile может настраивать и изменять метод save()
строка _document = "d:\myweb2\saidy.xml";
XmlTextWriter writer = null //Сохранить как файл XML;
пытаться
{
писатель = новый XmlTextWriter (_document, null);
писатель.Форматирование = Форматирование.Отступ;
писатель.WriteStartDocument(ложь);
Writer.WriteDocType("Profile",null,null,null); //Указывает <!DOCTYPE Profile>
Writer.WriteStartElement("Профиль"); //Создаем корневой элемент
WriteElementString("firstname",_firstname); //Создаем подэлемент <firstname>_firstname</firstname>
Writer.WriteElementString("lastname",_lastname);
Writer.WriteElementString("phonenumber",_phonenumber);
Writer.WriteElementString("адрес1",_адрес1);
Writer.WriteElementString("адрес2",_адрес2);
Writer.WriteElementString("город",_city);
Writer.WriteElementString("state",_state);
Writer.WriteElementString("postal",_postal);
писатель.WriteEndElement();
писатель.Flush();
писатель.Закрыть();
}
поймать (исключение ee)
{
Console.WriteLine("Исключение:{0}",ee.ToString());
}
}
}
}