Warisan dan derivasi
Jika Anda baru pertama kali mendengar nama ini, sebaiknya pikirkan dulu arti kedua kata tersebut. Mari kita bicara tentang warisan terlebih dahulu, ini mirip dengan pengertian warisan dalam kehidupan nyata. Misalnya seseorang mewarisi harta milik orang lain, dan seorang anak laki-laki mewarisi harta warisan ayahnya. Demikian pula di C++, misalnya jika ada dua kelas, maka kelas baru tersebut memiliki semua atribut dari kelas aslinya, yang disebut pewarisan ! Proses pembangkitan kelas baru dari kelas asal disebut derivasi ! Dan kita menyebut kelas asal sebagai kelas induk atau kelas dasar , dan kelas turunan dari kelas dasar disebut kelas turunan atau subkelas . Setiap orang dapat mengetahui hubungan mereka dari namanya.
Lalu apa manfaat pewarisan dan derivasi? Mengapa C++ memiliki mekanisme ini?
1. Mencerminkan ide pemrograman berorientasi objek dan mengekspresikan hubungan antara berbagai tipe dengan lebih baik.
2. Selain mewarisi semua informasi dari kelas dasar, kelas turunan juga dapat menambahkan informasinya sendiri yang berbeda dan terdiferensiasi. Sama seperti prinsip evolusi biologis, kelas turunan akan diperbarui berdasarkan kepemilikan semua informasi tersebut kelas dasar.
3. Anggota yang diwarisi dari kelas turunan ke kelas dasar dimiliki secara otomatis dan tersembunyi, artinya kita tidak perlu mendefinisikan ulang mereka. Ini menghemat banyak kode dan mewujudkan ide rekayasa perangkat lunak dari penggunaan kembali kode.
Selanjutnya, mari kita lihat implementasi kode sebenarnya, cara mewarisi dan mengimplementasikan kelas turunan:
/***************************************//Des: Demo tutorial C++ //Penulis: Huang/ /Hak Cipta:www.dotcpp.com//Tanggal:2018/6/20********************************* * *******/#include<iostream>usingnamespacestd;classClock{private:intH;intM;intS;public:intSetTime(inth,intm,ints){this->H=h;this->M=m ; ini->S=s;return0;}intShowTime(){cout<<Sekarang:<<H<<:<<M<<:<<S<<endl;return0;}};classAlarmClock:publicClock{pribadi: intAH ;intAM;public:intSetAlarm(intAH,intAM){ini->AH=AH;ini->AM=AM;return0;}intShowAlarm(){cout<<AlarmTime:<<AH<<:<<AM<< endl ;return0;}};intmain(){AlarmClockA;A.SetTime(19,15,50);A.ShowTime();A.SetAlarm(5,30);A.ShowAlarm();return0;}
Tangkapan layar yang berjalan adalah sebagai berikut:
Harap baca dan pahami kodenya. Jam adalah kelas dasar dan AlarmClock adalah kelas turunan.
classAlarmClock: jam publik
Warisan diwakili oleh titik dua , dimana public mewakili warisan publik, warisan pribadi dan warisan yang dilindungi, yang akan kita bahas nanti. Dalam kode tersebut, kita mendefinisikan objek A dari kelas turunan AlarmClock di fungsi utama, lalu kita dapat memanggil metode SetTime dan ShowTime dari kelas dasar dan menggunakannya sama seperti milik kita. Pada saat yang sama, kami telah menambahkan dan mendefinisikan metode SetAlarm dan ShowAlarm kami sendiri di kelas turunan. Harap pahami kode dan percobaan di komputer.
Sejauh ini, kami telah memperkenalkan konsep dasar pewarisan dan derivasi. Setelah memahami hal ini, Anda perlu bereksperimen dengan pengkodean di komputer untuk memahami dalam keadaan apa dua kelas yang memiliki kesamaan dan terkait dapat memiliki hubungan seperti ini, dan mempertimbangkannya. menggunakan.