Cara Menggunakan Warisan dalam C#

Cara Menggunakan Warisan Dalam C



Semasa menulis kod dalam bahasa pengaturcaraan berorientasikan objek, kita mungkin menghadapi situasi di mana kita perlu menggunakan semula kod sedia ada dalam kelas baharu atau menambah fungsi tambahan pada kelas sedia ada. Dalam kes sedemikian, warisan berguna. Warisan dalam pengaturcaraan berorientasikan objek membolehkan kelas mewarisi sifat dan tingkah laku kelas lain. Artikel ini merangkumi penggunaan warisan dalam C# dan jenisnya yang berbeza.

Isi kandungan

Apakah Warisan dalam C#

Bagaimana Warisan Berfungsi dalam C#







Jenis Warisan dalam C#



Kesimpulan



Apakah Warisan dalam C#

Dalam C# menggunakan warisan, satu kelas boleh mengambil atau mewarisi sifat dan kaedah kelas lain. Dalam erti kata lain, ia membenarkan penciptaan kelas baharu berdasarkan kelas sedia ada, yang dikenali sebagai kelas asas atau kelas super. Kelas yang terbentuk selepas mengambil sifat kelas asas dipanggil kelas terbitan atau subkelas.





Kelas terbitan dalam C# ini bukan sahaja mengambil sifat kelas asas tetapi juga boleh menambah ciri uniknya sendiri.

Bagaimana Warisan Berfungsi dalam C#

Dalam C#, pewarisan dicapai melalui penggunaan kolon (:) simbol. Nama kelas asas ditakrifkan selepas titik bertindih, dan ia ditentukan oleh kelas terbitan.



Berikut ialah sintaks untuk mencipta kelas terbitan yang mengambil sifat daripada kelas asas:

kelas DerivedClass : BaseClass

{

// ahli kelas terbitan

}

Di sini dalam kod ini, DerivedClass ialah nama kelas terbitan, dan BaseClass ialah nama kelas asas. The : simbol menunjukkan bahawa DerivedClass mewarisi daripada BaseClass. Ahli DerivedClass boleh mengakses ahli BaseClass, dengan syarat mereka bukan peribadi.

Jenis Warisan dalam C#

C# menyokong empat jenis warisan: warisan tunggal, berbilang peringkat, hierarki dan berbilang. Mari lihat setiap jenis.

Warisan Tunggal

Warisan tunggal ialah jenis warisan yang paling biasa, di mana kelas terbitan mengambil atau mewarisi sifat hanya satu kelas asas.

Sebagai contoh, kod yang diberikan menerangkan hierarki kelas dan menunjukkan konsep pewarisan.

menggunakan Sistem ;

menggunakan Sistem ;
kereta kelas
{
awam batal Mulakan ( )
{
Konsol. WriteLine ( 'Kereta dimulakan' ) ;
}
}
kelas Tesla : kereta
{
awam batal Mempercepatkan ( )
{
Konsol. WriteLine ( 'Tesla memecut' ) ;
}
}
Program kelas
{
statik batal Utama ( tali [ ] args )
{
Tesla myTesla = Tesla baharu ( ) ;
myTesla. Mulakan ( ) ; // Output: Kereta dihidupkan
myTesla. Mempercepatkan ( ) ; // Output: Tesla memecut
}
}

Dalam kod di atas, the Kelas kereta ialah kelas asas dan mempunyai kaedah yang dipanggil Mula() , yang hanya mencetak mesej Kereta dihidupkan ke konsol.

The kelas Tesla diperoleh daripada kelas Kereta, dan ia mengambil semua sifat kelas Kereta. Kelas Tesla menambah kaedah yang dipanggil Mempercepat() , yang mencetak mesej Tesla memecut ke konsol.

The Utama() fungsi mentakrifkan contoh kelas Tesla yang dipanggil myTesla dan memanggil kaedah Start() dan Accelerate()nya.

Warisan berbilang peringkat

Warisan berbilang peringkat ialah apabila kelas terbitan mewarisi daripada kelas terbitan lain, yang seterusnya mewarisi daripada kelas asas.

Sebagai contoh, kod C# berikut menunjukkan warisan dan kaedah mengatasi dalam hierarki kelas.

menggunakan Sistem ;
kelas Haiwan
{
awam batal makan ( )
{
Konsol. WriteLine ( 'Makan haiwan' ) ;
}
}
Mamalia kelas : Haiwan
{
awam batal Lari ( )
{
Konsol. WriteLine ( 'Mamalia berlari' ) ;
}
}
kelas Anjing : Mamalia
{
awam batal kulit kayu ( )
{
Konsol. WriteLine ( 'Anjing menyalak' ) ;
}
}
Program kelas
{
statik batal Utama ( tali [ ] args )
{
Anjing myDog = Anjing baru ( ) ;
anjing saya. makan ( ) ; // Output: Makan haiwan
anjing saya. Lari ( ) ; // Output: Mamalia berlari
anjing saya. kulit kayu ( ) ; // Output: Anjing menyalak
}
}

Di sini anjing ialah kelas terbitan yang mewarisi daripada Mamalia , yang seterusnya mewarisi daripada Haiwan . Kelas Anjing mempunyai akses kepada semua sifat, kaedah dan tingkah laku Mamalia dan Haiwan, dan juga boleh menentukan kaedah uniknya sendiri kulit kayu() .

The Kelas haiwan ialah kelas asas dan mempunyai kaedah yang dipanggil makan() , yang hanya mencetak mesej Animal eating ke konsol.

The Kelas mamalia diperoleh daripada kelas Haiwan dan menambah kaedah yang dipanggil Lari() , yang mencetak mesej Mamalia yang berjalan ke konsol.

The Kelas anjing diperoleh daripada kelas Mamalia dan menambah kaedah yang dipanggil kulit kayu() , yang mencetak mesej Anjing menyalak ke konsol.

Kaedah Main() mencipta contoh kelas Anjing yang dipanggil anjing saya dan memanggil kaedah Eat(), Run(), dan Bark()nya.

Ambil perhatian bahawa kaedah Eat() dan Run() tidak ditakrifkan dalam kelas Dog, tetapi diwarisi daripada kelas induknya Haiwan dan Mamalia , masing-masing. The kulit kayu() kaedah hanya ditakrifkan dalam kelas Anjing.

  Teks
Perihalan dijana secara automatik

Warisan Hierarki

Dalam warisan Hierarki, bilangan kelas terbitan yang berbeza diwarisi daripada hanya satu kelas asas. Sebagai contoh:

menggunakan Sistem ;
Bentuk kelas
{
awam batal Lukis ( )
{
Konsol. WriteLine ( 'Melukis bentuk' ) ;
}
}
Bulatan kelas : bentuk
{
awam batal isi ( )
{
Konsol. WriteLine ( 'Mengisi bulatan' ) ;
}
}
kelas Square : bentuk
{
awam batal Warna ( )
{
Konsol. WriteLine ( 'Petak mewarna' ) ;
}
}
Program kelas
{
statik batal Utama ( tali [ ] args )
{
Bulatkan myCircle = Bulatan baharu ( ) ;
myCircle. Lukis ( ) ; // Output: Melukis bentuk
myCircle. isi ( ) ; // Output: Mengisi bulatan

Square mySquare = Dataran baharu ( ) ;
mySquare. Lukis ( ) ; // Output: Melukis bentuk
mySquare. Warna ( ) ; // Output: Mewarna segi empat sama
}
}

Dalam kod di atas, kedua-duanya Bulatan dan Segi empat ialah kelas terbitan yang mewarisi daripada bentuk . Mereka mempunyai akses kepada kaedah Draw() yang ditakrifkan dalam Shape dan juga boleh menentukan kaedah unik mereka sendiri Fill() dan Color().

Di sini kami mencipta objek kelas Bulatan bernama myCircle dan objek daripada Segi empat kelas dinamakan mySquare . Kami kemudian memanggil Lukis() kaedah, yang diwarisi daripada kelas Shape, pada kedua-dua objek.

Seterusnya, kami memanggil Isi() kaedah pada myCircle, yang khusus untuk kelas Circle, dan Warna() kaedah pada mySquare, yang khusus untuk kelas segi empat sama.

Output akan dicetak ke konsol seperti di bawah:

  Teks
Perihalan dijana secara automatik dengan keyakinan sederhana

Pusaka Berbilang

Warisan berbilang ialah tempat kelas terbitan mewarisi daripada berbilang kelas asas. Walau bagaimanapun, C# tidak menyokong pelbagai warisan. Untuk mencapai fungsi yang sama, C# menggunakan antara muka .

Kesimpulan

Warisan dalam C# membolehkan kelas mewarisi tingkah laku dan fungsi daripada kelas asas. Menggunakan warisan, kita boleh menggunakan semula kod dan mencipta aliran hierarki dalam program. Dengan memahami pelbagai jenis warisan, seseorang boleh menulis kod yang lebih cekap dan teratur yang lebih mudah untuk dikekalkan dan dilanjutkan.