Saya baru saja mempelajari Asp.Net dan menggunakan C# untuk menulis kode. Saat mempelajari C#, saya menemukan bahwa banyak pemula tidak memiliki pemahaman khusus tentang pewarisan dan polimorfisme, jadi saya membuat contoh ini
contohnya
sangat sederhana
<%@ Halaman Bahasa="C#" ContentType="teks/html" ResponseEncoding="gb2312" Src="profile2.cs" %>
<%@ Impor Namespace="shai" %>
<html>
<kepala>
<gaya>
div{font:Arial, Helvetica, sans-serif;
warna latar:#cccccc;
warna batas:hitam;
lebar batas:1;
gaya perbatasan: padat;
bantalan:10,10,10,10;
}
</gaya>
<skrip bahasa="c#" runat="server">
public void Page_Load(Pengirim objek,EventArgs e)
{
Profil profil = Profil baru();
message.InnerHtml += "<u>Kelas Profil</u><br>";
message.InnerHtml += "Nama Depan:"+profil.getNama Depan()+"<br>";
message.InnerHtml += "Nama Belakang:"+profil.getNama Belakang()+"<br>";
message.InnerHtml += "Telepon:"+profil.getPhonenumber()+"<br><br>";
profil.simpan();
ExtendedProfile extendedprofile = baru ExtendedProfile();
message.InnerHtml += "<u>Kelas ExtendedProfile</u></br>";
message.InnerHtml += "Nama Depan:"+profil.getNama Depan()+"<br>";
message.InnerHtml += "Nama Belakang:"+profil.getNama Belakang()+"<br>";
message.InnerHtml += "Telepon:"+exendedprofile.getPhonenumber()+"<br>";
pesan.InnerHtml += "Alamat1:"+exendedprofile.getAddress1()+"<br>";
pesan.InnerHtml += "Alamat2:"+exendedprofile.getAddress2()+"<br>";
message.InnerHtml += "Kota:"+exendedprofile.getCity()+"<br>";
message.InnerHtml += "Status:"+exendedprofile.getState()+"<br>";
pesan.InnerHtml += "Pos:"+exendedprofile.getPostal()+"<br>";
message.InnerHtml += "Deskripsi:"+exendedprofile.getDescription()+"<br>";
extendedprofile.save();
}
</skrip>
<meta http-equiv="Jenis Konten" content="teks/html; charset=gb2312">
<judul></judul>
</kepala>
<body style="font:Arial, Helvetica, sans-serif">
<b><h3>Contoh pewarisan/polimorfisme sederhana</h3></b><br><br>
keluaran objek:<br>
<br>
<div id="pesan" runat="server" />
</tubuh>
</html>
File definisi kelas profile2.cs
menggunakan Sistem;
menggunakan Sistem.IO;
menggunakan Sistem.Xml;
ruang nama shai //ruang nama shai
{
interface ISaveData //Tentukan antarmuka ISaveData, yang diwarisi sebagai kelas dasar Profil Karena karakteristik polimorfiknya, hal ini dapat terjadi
{/ //Kelas yang berbeda memanggil metode dan memodifikasinya
batal simpan();
}
Profil kelas publik: ISaveData //Tentukan Profil kelas
{
string yang dilindungi _nama depan; //Berisi tiga atribut, yaitu _nama depan, _nama belakang, nomor telepon
string yang dilindungi _nama belakang;
string yang dilindungi _nomor telepon;
public Profile() //Tentukan nilai awal properti
{
_nama depan = "Said";
_nama belakang = "Chen";
_nomor telepon = "(010)88716990";
}
string publik getPhonenumber() //Metode getPhonenumber() di kelas Profil
{
kembalikan _nomor telepon;
}
set kekosongan virtual publikNomor Telepon(string nomor telepon)
{
_nomor telepon = nomor telepon;
}
string publik getFirstname() //Metode getFirstname() di kelas Profil
{
kembalikan _nama depan;
}
public void setNama Depan(string nama depan)
{
_nama depan = nama depan;
}
string publik getLastname() //Metode getLastname() di kelas Profil
{
kembalikan _nama belakang;
}
public void setLastname(string nama belakang)
{
_nama belakang = nama belakang;
}
public virtual void save() //Panggil metode save() pada antarmuka ISaveData
{
//Menyimpan data dalam format Teks
FileStream fs = FileStream baru("D:\myweb2\profile2.txt",FileMode.Create,FileAccess.Write);
StreamWriter sw = StreamWriter baru(fs);
sw.WriteLine("Nama Depan:"+_namadepan.ToString());
sw.WriteLine("Nama Belakang:"+_namabelakang.ToString());
sw.WriteLine("Telepon:"+_nomor telepon.ToString());
sw.Siram();
sw.Tutup();
fs.Tutup();
}
}
kelas publik ExtendedProfile:Profile membuat subkelas Profil ExtendedProfile, yang dapat mewarisi metode di Profil
{
string yang dilindungi _address1; //Atribut dari subkelas ExtendedProfile
string yang dilindungi _address2;
string yang dilindungi _city;
string yang dilindungi _state;
string yang dilindungi _postal;
string yang dilindungi _deskripsi;
public ExtendedProfile() //Nilai awal atribut di subkelas ExtendedProfile
{
_address1 = "Universitas Tsinghua";
_address2 = "Laboratorium Fisika Universitas Tsinghua";
_city = "Beijing";
_state = "Beijing";
_postal = "100024";
_deskripsi = "Profesor";
}
public override void setPhonenumber(string phonenumber) //Mewarisi metode setPhonenumber() di kelas Profil
{ //Metode setPhonenumber() kelebihan beban
_nomor telepon = nomor telepon;
}
public string getAddress1() //Metode getAddress1() pada subkelas ExtendedProfile, dan seterusnya
{
kembalikan _alamat1;
}
string publik getAddress2()
{
kembalikan _alamat2;
}
alamat set kekosongan publik (alamat string1, alamat string2)
{
_alamat1 = alamat1;
_alamat2 = alamat2;
}
string publik getCity()
{
kembalikan _kota;
}
kekosongan publik setCity (string kota)
{
_kota = kota;
}
string publik getState()
{
kembalikan _status;
}
kekosongan publik setState(status string)
{
_negara bagian = negara bagian;
}
string publik getPostal()
{
kembali _postal;
}
public void setPostal(string pos)
{
_postal = pos;
}
string publik getDeskripsi()
{
kembalikan _deskripsi;
}
public void setDescription (deskripsi string)
{
_deskripsi = deskripsi;
}
public override void save() //Panggil metode save() di antarmuka ISaveData(), kelebihan metode save(), karena polimorfisme
{ //Subclass ExtendedProfile dapat menyesuaikan dan memodifikasi metode save()
string _document = "d:\myweb2\saidy.xml";
Penulis XmlTextWriter = null; //Simpan sebagai file Xml
mencoba
{
penulis = new XmlTextWriter(_document,null);
writer.Formatting = Memformat.Indentasi;
penulis.WriteStartDocument(salah);
writer.WriteDocType("Profil",null,null,null); //Menunjukkan <!DOCTYPE Profil>
writer.WriteStartElement("Profile"); //Buat elemen root
writer.WriteElementString("namadepan",_namadepan); //Buat sub-elemen <namadepan>_namadepan</namadepan>
writer.WriteElementString("nama belakang",_nama belakang);
writer.WriteElementString("nomor telepon",_nomor telepon);
penulis.WriteElementString("alamat1",_alamat1);
penulis.WriteElementString("alamat2",_alamat2);
penulis.WriteElementString("kota",_kota);
penulis.WriteElementString("negara",_negara);
penulis.WriteElementString("postal",_postal);
penulis.WriteEndElement();
penulis.Flush();
penulis.Tutup();
}
menangkap (Pengecualian ee)
{
Console.WriteLine("Pengecualian:{0}",ee.ToString());
}
}
}
}