Kata pengantar
Java adalah bahasa yang berorientasi objek. Setiap orang yang telah belajar Java tahu bahwa enkapsulasi, warisan, dan polimorfisme adalah tiga karakteristik yang berorientasi pada objek. Ketika semua orang baru saja belajar warisan, mereka akan memiliki kesan yang kurang lebih bahwa waris dapat membantu saya mewujudkan penggunaan kembali kelas. Oleh karena itu, banyak pengembang secara alami akan menggunakan warisan kelas ketika mereka perlu menggunakan kembali beberapa kode, karena inilah yang ditulis buku ini (inilah yang diajarkan guru). Namun, sebenarnya salah untuk melakukan ini. Penggunaan warisan skala besar jangka panjang akan membawa biaya perawatan yang tinggi ke kode.
Sebenarnya, ketika saya pertama kali belajar Java, saya tidak pernah mendengar kombinasi istilah, dan guru tidak pernah menjelaskannya. Saya selalu berpikir bahwa saya telah kehilangan beberapa poin pengetahuan, tetapi ternyata tidak. Istilah kombinasi harus didefinisikan sebagai hal pemikiran untuk saat ini. Saya percaya bahwa pembaca telah bersentuhan dengannya, tetapi saya tidak tahu bahwa itu memiliki nama ini.
Faktanya, kombinasi yang disebut adalah membuat kelas baru untuk memanggil kelas yang telah dibuat dan debugged, sehingga kelas baru ini dapat disebut kombinasi
Misalnya, saya membuat orang
People Public Class {Private String Name; usia int pribadi; public void setName (nama string) {this.name = name; } public string getName () {return this.name; } public int getage () {return this.age; } public void setage (int usia) {this.age = usia; }} Lalu saya ingin menggunakan kelas ini sekarang. Saya dapat menambahkan beberapa fitur baru ke kelas ini. Pada saat ini, kita dapat membuat kelas baru dan kemudian membuat objek orang di kelas ini.
Misalnya, saya sekarang membuat kelas yang disebut siswa
class student {people people = new people ();} Kemudian Anda dapat menambahkan beberapa atribut ke kelas ini, seperti mendefinisikan identitas sebagai siswa, yang tidak akan saya bahas di sini.
Selanjutnya, mari kita lihat warisan. Bahkan, warisan dan kombinasi serupa. Pertama -tama mari kita lihat bagaimana itu diwarisi.
Ada kata kunci yang disebut Extends in Java, yang dapat membantu kita mewarisi. Kami menyebut kelas induk kelas warisan, kelas dasar, kelas super, dan pewaris semuanya baik -baik saja, dan kami menyebut subkelas pewaris atau kelas turunan, dll.
Di sini kami mendefinisikan kelas
Siswa kelas publik memperluas orang {// dosomething} Dengan cara ini, kelas mewarisi semua metode anggota dan variabel anggota kelas induk, tetapi perhatikan bahwa bidang atau metode yang dinyatakan sebagai izin pribadi tidak akan diwarisi.
Untuk membuktikan ini, kami menulis metode di kelas siswa
string publik re () {return this.name;}Di sini kompiler akan melaporkan kesalahan "People.name tidak terlihat". Dari sini, kita dapat melihat bahwa bidang atau metode yang dinyatakan sebagai pribadi tidak dapat diwariskan. Jika Anda ingin mewarisinya, Anda dapat mengubah pribadi menjadi terlindungi. Dengan cara ini, kita dapat mewarisi bidang nama dengan lancar.
Dengan cara ini, kami menginisialisasi semua bidang pada orang, cukup tambahkan blok kode ini ke kode.
{this.age = 10; this.name = "zhangsan";}Selanjutnya, nyatakan siswa ini di fungsi utama
Siswa Siswa = Siswa Baru (); System.out.println (Student.getage ());
Sekarang kami terkejut menemukan bahwa metode penulisan ini layak. Meskipun kami tidak menyatakan bidang dan metode di subkelas, kami masih dapat memanggil getage (); dan kita bisa mencetak 10 dengan lancar
Ini karena kami tidak membebani metode apa pun di subclass, jadi kami menyebut kelas induk getage, sehingga kami dapat dengan mudah mengakses bidang yang dinyatakan oleh kelas induk pribadi.
Setelah membaca ini, saya percaya bahwa setiap orang memiliki pemahaman awal tentang warisan. Jadi dalam mekanisme warisan, bagaimana metode konstruksi setiap kelas disebut? Jawabannya adalah menghubungi mereka secara berurutan dari kelas induk ke kelas anak.
Saat mendemonstrasikan, saya pertama kali menyatakan tiga kelas Temp1, Temp2, dan Temp3. Pada saat yang sama, Temp3 mewarisi dari Temp2, dan Temp2 mewarisi dari Temp1. Dengan cara ini, kami meletakkan pernyataan cetak dalam metode konstruksi setiap kelas.
//Temp1system.out.println("i'm temp1 "); // temp2system.out.println (" I'm Temp2 "); // temp3system.out.println (" I'm Temp3 "); Demi kenyamanan, saya menulis ini di sini, tetapi semua orang harus memperhatikan fakta bahwa ini ditempatkan dalam metode konstruksi setiap kategori.
Kami membuat objek Temp3 di fungsi utama
kelas publik mian {public static void main (string [] args) {temp3 temp3 = temp3 baru (); }}Kami melihat konsol dan mencetaknya
Saya temp1i'm temp2i'm temp3
Dari sini kita dapat melihat bahwa kita perlu membuat objek Temp3 terlebih dahulu, menemukan kata kunci Extends, kemudian ikuti rantai warisan, temukan Temp2, dan temukan kata kunci Extends, kemudian temukan Temp1, lalu panggil konstruktor Temp1, dan kemudian panggil satu per satu.
Meringkaskan
Di atas adalah seluruh konten artikel ini. Saya berharap konten artikel ini akan membantu studi atau pekerjaan Anda. Jika Anda memiliki pertanyaan, Anda dapat meninggalkan pesan untuk berkomunikasi.