Ada banyak konten di bagian ini, dan file video melebihi 4M, jadi waktu pengunduhan mungkin sedikit lebih lama. Harap tunggu sebentar!
Ada banyak konten di bagian ini, karena kontennya banyak dalam warisan saja, jadi saya akan memanfaatkan kesempatan ini untuk menggunakan semua hal sebelumnya, yang dianggap sebagai review. Beberapa hal di bagian ini dijelaskan berulang kali dua atau tiga kali kuasai mereka. Ini adalah hal yang paling penting! ! Jika Anda tidak yakin dengan isi ulasan di bagian ini, silakan baca bab sebelumnya yang relevan! !
Selanjutnya kita membahas tentang pewarisan. Untuk memahami pewarisan, pertama-tama kita perlu mengetahui mengapa pewarisan diperlukan?
Misalkan kelas yang kita buat untuk sistem berita sudah memiliki koneksi database, inisialisasi, dan fungsi-fungsi seperti query, penambahan, penghapusan, modifikasi, dll. .!
Maka kita pasti harus melakukan beberapa query yang berbeda, modifikasi, dll. Misalnya, kolom berita dan manajemen pengguna sama-sama perlu menggunakan kelas yang kami sebutkan sebelumnya, tetapi perbedaannya adalah memerlukan hasil yang berbeda. apa yang harus dilakukan? Ada dua cara. Salah satunya adalah dengan membuat kelas untuk mereka secara terpisah dan menyalin kelas koneksi database dua kali. Saya rasa kerugiannya tidak perlu disebutkan. Kemudian kita juga dapat sering memanggil anggota kelas database untuk mencapai tujuan tersebut ini terjadi, bukankah kode kita akan sangat membengkak? Tahukah Anda mengapa pil penurun berat badan begitu populer?
Depresi, apa yang harus saya lakukan? Sederhananya, kita menggunakan pewarisan untuk menyelesaikannya. Mari kita jelaskan secara singkat pewarisan, yaitu subkelas (kelas turunan) memiliki semua karakteristik kelas induk (kelas dasar), dan pada saat yang sama memiliki karakteristiknya sendiri. Saya pikir ini harus memperjelasnya!
Catatan: .Net Inheritance hanya mengizinkan pewarisan langsung dari kelas lain, dan tidak bisa mewarisi beberapa kelas sekaligus. Sepertinya hanya ada satu ayah (sebenarnya ini tidak mutlak, haha, menarik banget kalau dipikir-pikir tentang Microsoft, kita masih bisa menggunakan antarmuka untuk mengimplementasikan pewarisan berganda), tetapi pewarisan multi-level juga dimungkinkan, misalnya ayah dan kakek di atas, serta anak laki-laki dan cucu di bawah.
Mari kita lihat sesuatu yang intuitif:
Jika kita perhatikan gambar di atas, kita akan menemukan bahwa level yang lebih rendah lebih spesifik. Maka kita dapat memahami bahwa manusia adalah kelas dasar (kelas induk) dari semua kelas, dan berikut ini adalah kelas turunan (subkelas). Faktanya, subkategori berikut ini dapat diperluas ke bawah.
Di C#, kelas turunan mewarisi anggota dari kelas dasar langsungnya: metode, bidang, properti, peristiwa, dan indikator indeks. Kelas turunan secara implisit mewarisi semua anggota kelas dasar langsung kecuali konstruktor dan destruktor.
2. Warisan dalam C# mematuhi aturan berikut:
(Ini bukan ringkasan saya, saya online dan menyalinnya dari orang lain. Haha!!)
1. Warisan bersifat transitif. Jika C berasal dari B, dan B berasal dari A, maka C tidak hanya mewarisi anggota-anggota yang dinyatakan dalam B, tetapi juga mewarisi anggota-anggota dalam A. Kelas Object berfungsi sebagai kelas dasar untuk semua kelas.
2. Kelas turunan harus merupakan perluasan dari kelas dasar. Kelas turunan dapat menambahkan anggota baru, namun tidak dapat menghapus definisi anggota yang diwarisi.
3. Konstruktor dan destruktor tidak dapat diwariskan. Selain itu, anggota lain dapat diwarisi terlepas dari metode akses yang ditentukan untuk mereka. Cara anggota diakses di kelas dasar hanya dapat menentukan apakah kelas turunan dapat mengaksesnya.
4. Jika kelas turunan mendefinisikan anggota baru dengan nama yang sama dengan anggota yang diwarisi, kelas tersebut dapat menimpa anggota yang diwarisi tersebut. Namun bukan berarti kelas turunan telah menghapus anggota tersebut, hanya saja anggota tersebut tidak dapat diakses lagi. (Perlu dicatat bahwa jika suatu atribut atau metode memiliki nama yang sama tetapi tanda tangan yang berbeda, itu bukan penimpaan, melainkan kelebihan beban.)
5. Sebuah kelas dapat mendefinisikan metode virtual, atribut virtual, dan indikator indeks virtual, serta turunannya Kelas dapat membebani anggota ini secara berlebihan sehingga kelas pelaksana dapat memperlihatkan polimorfisme.
6. Kelas turunan hanya dapat diwarisi dari satu kelas, dan pewarisan berganda dapat dicapai melalui antarmuka.
Dalam suatu subkelas, kita dapat mengakses anggota kelas dasar melalui kata kunci dasar:
memanggil metode pada kelas dasar yang telah ditimpa oleh metode lain.
Menentukan konstruktor kelas dasar yang harus dipanggil saat membuat turunan kelas turunan.
Akses kelas dasar hanya dimungkinkan di konstruktor, metode instan, atau pengakses properti instans.
Merupakan kesalahan menggunakan kata kunci dasar dari metode statis.
Meninjau Kembali Pengubah Akses
Pengubah akses adalah kata kunci yang menentukan aksesibilitas dari anggota atau tipe yang dideklarasikan. Ada empat pengubah akses dalam pewarisan kelas: privat internal yang dilindungi publik. Gunakan pengubah akses ini untuk menentukan lima tingkat aksesibilitas berikut: publik dilindungi internal internal dilindungi swasta.
Arti aksesibilitas yang dideklarasikan
Akses publik tidak dibatasi.
akses yang dilindungi terbatas pada kelas penampung atau tipe yang diturunkan dari kelas penampung.
Akses internal terbatas pada proyek saat ini.
Akses internal yang dilindungi terbatas pada item atau tipe saat ini yang berasal dari kelas yang memuatnya.
akses pribadi terbatas pada tipe yang memuatnya.
Kita lihat contohnya dibawah ini, yuk langsung saja ke topik orangnya.
Lihat di kolom komentar semua kodenya!!