Mengapa lebih suka komposisi daripada warisan? Imbalan apa yang ada untuk setiap pendekatan? Kapan sebaiknya Anda memilih warisan daripada
Warisan adalah sistem dalam pemrograman berorientasi objek yang memungkinkan objek untuk mendukung operasi yang ditentukan oleh tipe anterior tanpa harus memberikan definisi sendiri. Ini adalah vektor utama untuk polimorfisme dalam pemrograman berorientasi objek.
Mengapa lebih suka komposisi daripada warisan? Imbalan apa yang ada untuk setiap pendekatan? Kapan sebaiknya Anda memilih warisan daripada
Ketika merencanakan program saya, saya sering memulai dengan rantai pemikiran seperti: Tim sepak bola hanyalah daftar pemain sepakbola. Karena itu, saya harus mewakilinya dengan: var football_team = new List<FootballPlayer>(); Urutan daftar ini mewakili urutan pemain terdaftar dalam...
Apa perbedaan antara kedua fragmen kode ini? Menggunakan type(): import types if type(a) is types.DictType: do_something() if type(b) in types.StringTypes: do_something_else() Menggunakan isinstance(): if isinstance(a, dict): do_something() if isinstance(b, str) or isinstance(b,...
Apakah ada alasan untuk mewarisi suatu deklarasi kelas object? Saya baru saja menemukan beberapa kode yang melakukan ini dan saya tidak dapat menemukan alasan yang bagus mengapa. class MyClass(object): # class code
The API Halaman Lingkup Referensi mengatakan: Lingkup dapat mewarisi dari lingkup induk. The Pengembang Halaman Lingkup Panduan mengatakan: Lingkup (prototipikal) mewarisi properti dari lingkup induknya. Jadi, apakah ruang lingkup anak selalu mewarisi secara prototipik dari ruang lingkup...
Apa perbedaan antara public, privatedan protectedwarisan di C ++? Semua pertanyaan yang saya temukan di SO menangani kasus-kasus
Dalam " Pemrograman Python ", Mark Lutz menyebutkan "mixins". Saya dari latar belakang C / C ++ / C # dan saya belum pernah mendengar istilah sebelumnya. Apa itu mixin? Membaca yang tersirat dari contoh ini (yang saya tautkan karena cukup panjang), saya anggap ini adalah kasus menggunakan multiple...
Saya cukup baru dalam pemrograman berorientasi objek Python dan saya mengalami kesulitan memahami super()fungsi (kelas gaya baru) terutama ketika datang ke beberapa warisan. Misalnya jika Anda memiliki sesuatu seperti: class First(object): def __init__(self): print "first" class...
Bagaimana cara mengatur kelas yang mewakili antarmuka? Apakah ini hanya kelas dasar
Gambar ini kembali menunjukkan bahwa setiap objek memiliki prototipe. Fungsi konstruktor Foo juga memiliki fungsi sendiri __proto__yaitu Function.prototype, dan yang pada gilirannya juga merujuk melalui __proto__propertinya lagi ke Object.prototype. Jadi, ulangi, Foo.prototype hanyalah properti...
Saya agak bingung tentang bagaimana generik Java menangani warisan / polimorfisme. Asumsikan hierarki berikut - Hewan (Induk) Anjing - Kucing (Anak-Anak) Jadi misalkan saya punya metode doSomething(List<Animal> animals). Dengan semua aturan pewarisan dan polimorfisme, saya akan berasumsi...
Seseorang menyebutkannya di IRC sebagai masalah
Tolong jelaskan dalam bahasa yang mudah dimengerti atau tautan ke beberapa
Saat membuat hierarki objek sederhana dalam Python, saya ingin dapat memanggil metode dari kelas induk dari kelas turunan. Di Perl dan Java, ada kata kunci untuk ini ( super). Di Perl, saya mungkin melakukan ini: package Foo; sub frotz { return "Bamf"; } package Bar; @ISA = qw(Foo); sub frotz...
Bagaimana cara memanggil fungsi induk dari kelas turunan menggunakan C ++? Sebagai contoh, saya memiliki kelas yang disebut parent, dan kelas yang disebut childyang berasal dari orang tua. Di dalam setiap kelas ada printfungsi. Dalam definisi fungsi cetak anak, saya ingin melakukan panggilan ke...
Apa perbedaan antara: class Child(SomeBaseClass): def __init__(self): super(Child, self).__init__() dan: class Child(SomeBaseClass): def __init__(self): SomeBaseClass.__init__(self) Saya telah melihat supercukup banyak digunakan di kelas dengan hanya satu warisan. Saya bisa melihat...
Jika kelas Bdan kelas Cmemperluas kelas Adan saya memiliki objek tipe Batau C, bagaimana saya bisa menentukan tipe mana yang merupakan
Apa bedanya? Kapan saya harus menggunakan yang mana? Mengapa mereka begitu
Dalam salah satu wawancara saya, saya diminta untuk menjelaskan perbedaan antara Interface dan kelas Abstrak . Inilah tanggapan saya: Metode antarmuka Java secara implisit abstrak dan tidak dapat memiliki implementasi. Kelas abstrak Java dapat memiliki metode instan yang mengimplementasikan...
Ini mungkin pertanyaan OOP umum. Saya ingin melakukan perbandingan generik antara antarmuka dan kelas abstrak berdasarkan penggunaannya. Kapan seseorang ingin menggunakan antarmuka dan kapan seseorang ingin menggunakan kelas abstrak