Recentemente aprendi Asp.Net e usei C# para escrever código. Ao aprender C#, descobri que muitos iniciantes não têm um conhecimento especial de herança e polimorfismo, por isso fiz este exemplo, espero que seja útil para você.
Oexemplo
é muito simples.
<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" Src="profile2.cs" %>
<%@Importar Namespace="shai" %>
<html>
<cabeça>
<estilo>
div{fonte:Arial, Helvetica, sans-serif;
cor de fundo:#cccccc;
cor da borda: preto;
largura da borda:1;
estilo de borda: sólido;
preenchimento:10,10,10,10;
}
</estilo>
<script linguagem="c#" runat="servidor">
public void Page_Load(Remetente do objeto,EventArgs e)
{
Perfil perfil = novo Perfil();
message.InnerHtml += "<u>Classe de perfil</u><br>";
message.InnerHtml += "Nome:"+profile.getFirstname()+"<br>";
message.InnerHtml += "Sobrenome:"+profile.getLastname()+"<br>";
message.InnerHtml += "Telefone:"+profile.getPhonenumber()+"<br><br>";
perfil.save();
ExtendedProfile perfil estendido = new ExtendedProfile();
message.InnerHtml += "<u>Classe ExtendedProfile</u></br>";
message.InnerHtml += "Nome:"+profile.getFirstname()+"<br>";
message.InnerHtml += "Sobrenome:"+profile.getLastname()+"<br>";
message.InnerHtml += "Telefone:"+extendedprofile.getPhonenumber()+"<br>";
mensagem.InnerHtml += "Endereço1:"+extendedprofile.getAddress1()+"<br>";
mensagem.InnerHtml += "Endereço2:"+extendedprofile.getAddress2()+"<br>";
message.InnerHtml += "Cidade:"+extendedprofile.getCity()+"<br>";
mensagem.InnerHtml += "Estado:"+extendedprofile.getState()+"<br>";
mensagem.InnerHtml += "Postal:"+extendedprofile.getPostal()+"<br>";
message.InnerHtml += "Descrição:"+extendedprofile.getDescription()+"<br>";
perfil estendido.save();
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<título></título>
</head>
<body style="font:Arial, Helvetica, sans-serif">
<b><h3>Exemplo simples de herança/polimorfismo</h3></b><br><br>
saída do objeto:<br>
<br>
<div id="mensagem" runat="servidor" />
</body>
</html>
Arquivo de definição de classe profile2.cs
usando o sistema;
usando System.IO;
usando System.Xml;
espaço para nome shai //espaço para nome shai
{
interface ISaveData //Define uma interface ISaveData, que é herdada como classe base do Profile Devido às suas características polimórficas, ela pode ser.
{ //Classes diferentes chamam métodos e os modificam
void salvar();
}
perfil de classe pública:ISaveData //Definir perfil de classe
{
string protegida _firstname; //Contém três atributos, nomeadamente _firstname, _lastname, phonenumber
string protegida _sobrenome;
string protegida _phonenumber;
public Profile() //Define o valor inicial da propriedade
{
_nome = "Saidi";
_sobrenome = "Chen";
_número de telefone = "(010)88716990";
}
public string getPhonenumber() //Método getPhonenumber() na classe Profile
{
retornar _número de telefone;
}
conjunto de vazios virtuais públicosNúmero de telefone(string número de telefone)
{
_númerotelefone = númerotelefone;
}
public string getFirstname() //Método getFirstname() na classe Profile
{
return _nome;
}
public void setPrimeironome(string nome)
{
_nome=nome;
}
public string getLastname() //Método getLastname() na classe Profile
{
retornar _sobrenome;
}
public void setLastname(string sobrenome)
{
_sobrenome = sobrenome;
}
public virtual void save() //Chama o método save() da interface ISaveData
{
//Salva os dados em formato Texto
FileStream fs = new FileStream("D:\myweb2\profile2.txt",FileMode.Create,FileAccess.Write);
StreamWriter sw = novo StreamWriter(fs);
sw.WriteLine("Nome:"+_nome.ToString());
sw.WriteLine("Sobrenome:"+_sobrenome.ToString());
sw.WriteLine("Telefone:"+_phonenumber.ToString());
sw.Flush();
sw.Fechar();
fs.Fechar();
}
}
A classe pública ExtendedProfile:Profile cria uma subclasse de perfil ExtendedProfile, que pode herdar os métodos em Profile
{
string protegida _address1; //Atributos da subclasse ExtendedProfile
string protegida _address2;
string protegida _cidade;
string protegida _state;
string protegida _postal;
string protegida _descrição;
public ExtendedProfile() //Valor inicial dos atributos na subclasse ExtendedProfile
{
_address1 = "Universidade Tsinghua";
_address2 = "Laboratório de Física da Universidade Tsinghua";
_cidade = "Pequim";
_state = "Pequim";
_postal = "100024";
_descrição = "Professor";
}
public override void setPhonenumber(string phonenumber) //Herda o método setPhonenumber() na classe Profile
{ //Sobrecarga do método setPhonenumber()
_númerotelefone = númerotelefone;
}
public string getAddress1() //O método getAddress1() na subclasse ExtendedProfile e assim por diante
{
retornar _endereço1;
}
string pública getAddress2()
{
retornar _endereço2;
}
public void setAddress(string endereço1,string endereço2)
{
_endereço1 = endereço1;
_endereço2 = endereço2;
}
string pública getCidade()
{
retornar _cidade;
}
public void setCidade(string cidade)
{
_cidade = cidade;
}
string pública getState()
{
retornar _estado;
}
public void setState(estado da string)
{
_estado = estado;
}
string pública getPostal()
{
retornar _postal;
}
public void setPostal(string postal)
{
_postal = postal;
}
string pública getDescrição()
{
retornar _descrição;
}
public void setDescription(descrição da string)
{
_descrição = descrição;
}
public override void save() //Chama o método save() na interface ISaveData(), a sobrecarga do método save(), devido ao polimorfismo
{ //A subclasse ExtendedProfile pode personalizar e modificar o método save()
string _document = "d:\myweb2\saidy.xml";
XmlTextWriter escritor = null; //Salvar como um arquivo Xml
tentar
{
escritor = novo XmlTextWriter(_document,null);
escritor.Formatting = Formatação.Recuado;
escritor.WriteStartDocument(falso);
escritor.WriteDocType("Perfil",null,null,null //Indica <!DOCTYPE Perfil>);
escritor.WriteStartElement("Perfil"); //Gerar elemento raiz
escritor.WriteElementString("firstname",_firstname); //Gerar subelemento <firstname>_firstname</firstname>);
escritor.WriteElementString("sobrenome",_sobrenome);
escritor.WriteElementString ("número de telefone",_número de telefone);
escritor.WriteElementString("endereço1",_endereço1);
escritor.WriteElementString("endereço2",_endereço2);
escritor.WriteElementString("cidade",_cidade);
escritor.WriteElementString("estado",_estado);
escritor.WriteElementString("postal",_postal);
escritor.WriteEndElement();
escritor.Flush();
escritor.Fechar();
}
catch(Exceção ee)
{
Console.WriteLine("Exceção:{0}",ee.ToString());
}
}
}
}