Siapapun yang memiliki pengetahuan sedikit dalam pemrograman, bertanya-tanya tentang mengapa ada kelas dasar abstrak. Apa tujuan mereka? Cara membuat sebuah kelas abstrak? Apa keuntungan yang mereka tawarkan dalam praktek? Mengapa mereka dibutuhkan dalam pemrograman dan beberapa fitur pelaksanaannya harus mempertimbangkan?
kelas abstrak
Jadi dalam pemrograman disebut kode unit atas dasar yang obyek tidak dapat dibuat. Perlu dicatat bahwa kelas ini penerus tidak bisa abstrak. Oleh karena itu, penciptaan benda-benda berdasarkan pada mereka sangat mungkin. Jika kita pertimbangkan contoh dari Jawa, kita membangun model yang kita dapat menggambarkan konstruktor di kelas A. Tapi untuk menggunakannya, kita tidak bisa. Cara keluar dari situasi ini adalah untuk menyatakan setiap referensi variabel. Dan Anda perlu didefinisikan secara jelas sehingga menunjuk ke sebuah objek dari kelas A. ini adalah bagaimana hal itu bisa dilakukan? Ini akan membantu kami membawa. Perlu diingat bahwa kelas induk selalu dianggap lebih fleksibel daripada keturunan tersebut. Dalam banyak bahasa pemrograman yang digunakan untuk membawa otomatis. Tapi jika tidak ada kepercayaan di hadapan mekanisme tersebut, maka Anda harus secara eksplisit referensi objek.
metode abstrak
Apa yang mereka? Abstrak panggilan metode-metode yang tidak diimplementasikan di kelas ini. Dengan demikian, berikut tanda kurung (yang berisi daftar argumen yang digunakan di dalamnya) tidak memberikan pembukaan berbentuk (dimana deskripsi blok terletak metode), dan hanya titik koma. Jadi, dalam hal ini, tidak ada informasi tentang apa yang dilakukannya. Berikut pertanyaan mungkin akan diminta: "Dan metode apa tanpa implementasi?" Setelah semua, dia tidak akan digunakan! Tentu saja, di kelas, di mana ia digambarkan, ini tidak mungkin. Tetapi jika kita mempertimbangkan situasi dari sudut pandang keturunan, itu bisa disebut. Dan itu akan beroperasi pada deskripsi spesifik yang tersedia di kelas ini.
Fitur metode abstrak
Ada keterbatasan dalam menggunakan mereka. Mari kita pertimbangkan contoh dari bahasa pemrograman Java. Ada persyaratan jika kelas memiliki setidaknya satu metode tersebut, harus abstrak. Dan dalam hal apapun adalah tepat untuk menggunakan konstruksi seperti itu? Mari kita memahami hal ini dengan hewan peliharaan contoh kelas. Untuk mulai memahami bahwa tidak ada suara yang mereka diterbitkan. Oleh karena itu, di kelas paling umum tidak diatur pelaksanaan suara metode ini. Tapi menciptakan tubuh yang terpisah melalui blok baginya. Dan berikut ini, saat membuat anjing kelas, kucing atau hamster akan ditentukan metode tunggal untuk itu, dalam rangka yang akan diungkapkan kepada semua fitur.
antarmuka
Dalam pemrograman menciptakan banyak alat-alat yang tujuannya - untuk membantu orang membuat produk yang berkualitas baik. Dan topik di bawah pertimbangan harus diberikan untuk aspek ini, dan bahwa semua orang tahu Tidak seperti kelas abstrak dari antarmuka. Jadi, fitur terakhir adalah bahwa hal itu tidak bisa menjadi properti dan metode tidak didefinisikan tubuh. Dengan memeriksa perbedaan antara kelas abstrak dari antarmuka, harus tinggal lebih pada satu tertentu. Dengan demikian, yang pertama diwariskan, sedangkan yang kedua - diwujudkan. orang yang tidak berpengalaman ini mungkin tampak tidak penting. Tetapi kenyataannya adalah, yang dapat diwariskan hanya satu kelas, dan menyadari - sebanyak yang diperlukan. Itulah apa yang berbeda dari antarmuka dari kelas abstrak. Java masih fitur yang dapat digambarkan hanya abstrak metode umum dan konstanta statis. Tetapi pada interface yang sama juga dapat diwariskan. Hal ini diperlukan untuk menunjukkan bahwa operator yang digunakan adalah masyarakat melalui public.
Beberapa warisan antarmuka
Fitur ini tidak tersedia untuk kelas dalam banyak bahasa pemrograman (misalnya, Java dianggap oleh kami). Hal ini disebabkan sejumlah masalah. Sebagai ambiguitas seperti menunjukkan bahwa terjadi berturut-turut. Ini adalah alasan untuk pengenalan beberapa warisan antarmuka. Ini sebagian memecahkan masalah yang ada, tetapi tidak semua. Jadi, berkat prinsip-prinsip enkapsulasi dan polimorfisme, interface dapat berhasil diterapkan di kelas yang berbeda sesuai dengan berbagai metode (meskipun mereka akan memiliki nama yang sama). Tapi jangan lupa tentang masalah yang ada. Jadi, ketika bekerja dengan beberapa interface harus selalu menentukan yang kita miliki dalam pikiran. Juga, masalah akan dan ketika Anda mencoba untuk bekerja dengan nama yang sama dalam dua cara - dalam hal ini, mereka tidak akan dapat mengambil keuntungan dari. Oleh karena itu, dalam kasus seperti itu perlu untuk mengurus kehadiran dari total penjualan.
data abstrak
Konsep ini adalah kunci untuk Program. Dalam hal ini, di bawah abstraksi dari kajian independen dan memahami pemisahan interface dan implementasi. Mari kita lihat sebuah contoh. Kami memiliki televisi, yang merupakan objek atau modul. Ini memiliki antarmuka. Dengan demikian, mereka kontrol, serta suara dan gambar. Antarmuka yang lebih sempurna digunakan, semakin nyaman dengan TV digunakan. Kita dapat beralih antara program dengan menekan tombol apapun. Dalam hal ini, tidak ada kebutuhan untuk berpikir tentang proses fisik di TV. Merawat mereka spesialis, yang mengumpulkan perangkat. Kami seperti orang hanya tertarik pada properti. Kembali ke pemrograman, kita dapat mengatakan bahwa mereka berada di antarmuka dan implementasi yang sama. Juga, jika seseorang percaya diri dalam pengetahuan, ia dapat "menghapus" menutupi TV hipotetis kami dan untuk memperbaikinya. Meskipun ini dapat membawa kesuksesan lokal, dalam banyak kasus, hasil akhirnya adalah negatif. Oleh karena itu, dalam larangan pemrograman didukung akses dan untuk menyembunyikan komponen internal data abstrak. Prinsip mekanisme ini menyediakan cara untuk mencegah penyesuaian disengaja atau tidak disengaja dari komponen internal. Dan ketika berbicara tentang tipe data abstrak, mean dari satu set seperangkat operasi yang dapat dilakukan pada mereka.
benda
Kita telah melihat kelas abstrak dan antarmuka pada umumnya dan umum. Sekarang mari kita rinci pengetahuan kita. Untuk memulai memperhatikan benda-benda. Di bawah mereka, secara umum, menyadari realitas lingkungan yang ada dalam ruang dan waktu. Tapi secara resmi mengidentifikasi objek dalam program ini sulit (dengan titik filosofis dan teoritis pandang). Oleh karena itu, karena sifat-sifatnya. Sebagai contoh, berikut: Sebuah objek dapat diidentifikasi secara unik (dengan nama yang unik), itu adalah dalam keadaan tertentu dan menggunakan pola perilaku tertentu.
warisan
Sejak pemrograman Anda didasarkan pada membangun hubungan pohon hirarkis antara objek, muncul pertanyaan tentang fakta bahwa sifat-sifat yang mendasari jenis perpustakaan kode orangtua dipindahkan. Di bawah warisan memahami hubungan ketika seseorang salah satu mengulangi perilaku dan struktur sesuatu yang lain. Dalam kehidupan biasa, dapat ditemukan di mana-mana. Seperti ditunda dan pemrograman elemen yang relatif abstrak. Sebagai perbandingan, fakta bahwa tidak ada tubuh seperti seperti burung. Ini adalah nama yang abstrak. Sebagai contoh spesifik mengarah teh, Nightingale atau burung gereja. Berkat warisan kita dapat menggunakan perpustakaan kelas, serta untuk mengembangkan mereka untuk program tertentu. Alat ini memungkinkan kita untuk membuat objek baru, secara bersamaan menambahkan atau mengubah sifat-sifat yang sudah dibuat. Pewaris mendapat semua metode dan bidang leluhurnya dan memperoleh atribut sendiri, jika perlu. Karena kenyataan bahwa ada unsur-unsur abstrak dan prinsip warisan, ada banyak kesempatan untuk modifikasi dalam pemrograman berorientasi objek. Selain itu, memungkinkan pendekatan fleksibel untuk memecahkan masalah. Ketika Anda mewarisi kelas baru data yang ditransfer dan fungsi.
polimorfisme
Hal ini diperlukan untuk menerapkan fungsi yang sama untuk memecahkan berbagai jenis masalah. Dalam hal ini menyediakan kehadiran kemungkinan tindakan yang berbeda, yang isinya akan tergantung pada jenis objek dengan yang pekerjaan dilakukan. Di bawah polimorfisme memahami sifat-sifat dari unsur-unsur yang memiliki induk yang sama, untuk melakukan mirip dengan makna semantik dari masalah dengan cara yang berbeda. Kami menarik analogi dengan hewan. Ada aksi - untuk menjalankan. Kita semua tahu bagaimana hal itu terjadi. Tapi binatang yang berbeda (singa, gajah, simpanse, buaya, kura-kura) aksi ini akan dilakukan dengan cara yang berbeda. Dalam hal ini, gerakan mereka adalah pengembang bertanggung jawab, yang jika perlu dapat menyebabkan untuk kasus tertentu rutinitas tertentu, algoritma dan melaksanakan dengan sukses. Hal ini dilakukan dengan menggunakan seperangkat metode. Pada saat yang sama di setiap programmer kelas menentukan yang objek sifat yang melekat. Mengubah sesuatu pada keturunannya, Anda dapat mencapai tertentu, tindakan yang diinginkan dalam hal ini. efek seperti itu disebut polimorfisme benda. Secara umum, kelas abstrak adalah alat yang sangat berguna untuk pemrograman.