Pertanyaan yang diberi tag «inheritance»

Warisan adalah cara untuk menggunakan kembali kode objek yang ada, atau untuk membuat subtipe dari objek yang ada, atau keduanya, tergantung pada dukungan bahasa pemrograman.

4
Pewarisan vs mixin dalam bahasa dinamis?
Kapan sebaiknya Anda lebih suka pola pewarisan daripada mixin dalam bahasa dinamis? Dengan mixins, maksud saya pencampuran yang tepat, seperti dalam menyisipkan fungsi dan anggota data ke dalam objek di runtime. Kapan Anda akan menggunakan, misalnya, pewarisan prototypal alih-alih mixin? Untuk menggambarkan lebih jelas apa yang saya maksud dengan mixin, …

1
Mengapa (/ apakah) Bertrand Meyer menganggap subklasifikasi adalah satu-satunya cara untuk memperpanjang modul "tertutup"?
Dalam Konstruksi Perangkat Lunak Berorientasi Objek Meyer (1988) ia mendefinisikan prinsip terbuka / tertutup sebagai berikut: Modul akan dikatakan terbuka jika masih tersedia untuk perpanjangan. Misalnya, harus dimungkinkan untuk menambahkan bidang ke struktur data yang dikandungnya, atau elemen baru ke set fungsi yang dijalankannya. Modul akan dikatakan tertutup jika tersedia …


5
Kapan harus menggunakan warisan, kapan harus menggunakan 'hanya bidang boolean'?
Dalam aplikasi Rails kami, kami menambahkan pemberitahuan. Beberapa di antaranya adalah blocking: Mereka menghentikan kemajuan sumber daya apa pun yang mereka tambahkan, karena beberapa informasi tentang sumber daya itu hilang. Pemberitahuan lainnya adalah pemberitahuan sederhana, dan hanya memberikan informasi. Hari ini saya berdiskusi dengan programmer lain di tim kami. Saya …




1
Bagaimana cara memverifikasi prinsip substitusi Liskov dalam hierarki warisan?
Terinspirasi oleh jawaban ini : Prinsip Pergantian Liskov mensyaratkan itu Prasyarat tidak dapat diperkuat dalam subtipe. Postconditions tidak dapat dilemahkan dalam subtipe. Invarian tipe supertipe harus dipertahankan dalam subtipe. Batasan sejarah ("aturan sejarah"). Objek dianggap dapat dimodifikasi hanya melalui metode mereka (enkapsulasi). Karena subtipe dapat memperkenalkan metode yang tidak ada …


8
"Lebih suka komposisi daripada warisan" - Apakah satu-satunya alasan untuk bertahan terhadap perubahan tanda tangan?
Halaman ini menganjurkan komposisi atas warisan dengan argumen berikut (diucapkan ulang dengan kata-kata saya): Perubahan tanda tangan dari metode superclass (yang belum ditimpa dalam subclass) menyebabkan perubahan tambahan di banyak tempat ketika kita menggunakan Inheritance. Namun, ketika kami menggunakan Komposisi, perubahan tambahan yang diperlukan hanya di satu tempat: Subkelas. Apakah …


3
Komposisi atas warisan tetapi
Saya mencoba mengajari diri saya sendiri rekayasa perangkat lunak dan menghadapi beberapa informasi yang saling bertentangan yang membingungkan saya. Saya telah belajar OOP dan apa kelas abstrak / Antarmuka dan bagaimana menggunakannya, tapi kemudian saya membaca bahwa orang harus 'lebih menyukai komposisi daripada warisan'. Saya mengerti komposisi adalah ketika satu …

2
Mengapa kelas dasar perlu memiliki destruktor virtual di sini jika kelas turunan tidak mengalokasikan memori dinamis mentah?
Kode berikut menyebabkan kebocoran memori: #include <iostream> #include <memory> #include <vector> using namespace std; class base { void virtual initialize_vector() = 0; }; class derived : public base { private: vector<int> vec; public: derived() { initialize_vector(); } void initialize_vector() { for (int i = 0; i < 1000000; i++) { …

5
Warisan vs properti tambahan dengan nilai nol
Untuk kelas dengan bidang opsional, apakah lebih baik menggunakan warisan atau properti nullable? Pertimbangkan contoh ini: class Book { private String name; } class BookWithColor extends Book { private String color; } atau class Book { private String name; private String color; //when this is null then it is "Book" …
12 java  inheritance  class  null 


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.