«inheritance» etiketlenmiş sorular

Kalıtım, programlama dili desteğine bağlı olarak mevcut nesnelerin kodunu yeniden kullanmanın veya mevcut bir nesneden veya her ikisinden bir alt tür oluşturmanın bir yoludur.

5
Bir yöntemin geçersiz sayılabileceğini, bir yöntemin çağrılabileceğini tanımlamaktan daha güçlü bir bağlılık olarak tanımlamak nasıl olabilir?
Gönderen: http://www.artima.com/lejava/articles/designprinciples4.html Erich Gamma: Hala on yıl sonra bile doğru olduğunu düşünüyorum. Kalıtım, davranışı değiştirmek için harika bir yoldur. Ancak bunun kırılgan olduğunu biliyoruz, çünkü alt sınıf, geçersiz kıldığı bir yöntemin çağrıldığı bağlam hakkında kolayca varsayımlarda bulunabilir. Taktığım alt sınıf kodunun çağrılacağı dolaylı bağlam nedeniyle, temel sınıf ve alt sınıf …

5
Java Swing sınıfını ne zaman genişletmeliyim?
Şu anki miras uygulama anlayışım, birinin sadece bir IS-A ilişkisi mevcutsa bir sınıfı genişletmesi gerektiği yönünde . Ebeveyn sınıfı ayrıca, farklı işlevselliğe sahip daha spesifik alt tipleri içerebilir ancak ebeveynde soyutlanmış ortak unsurları paylaşacaktır. Java profesörümün bize yapmamızı önerdiği şey yüzünden bu anlayışı sorguluyorum. JSwingSınıfta inşa ettiğimiz bir uygulama için …


3
Java geliştirme tipik olarak C # /. NET'ten daha fazla alt sınıflama içerir mi?
Geçenlerde Android gelişimine bakmaya başladım. Bu beni Java yazılım geliştirme dünyasına geri getirdi. Java ile en son çalıştığımda itiraf edeyim, neredeyse sandığım kadar OOP’u anlamadım. Kariyerimde ağırlıklı olarak C # kullandıktan sonra, kalıtımın Java ve C # kullanımında şaşırtıcı bir fark görüyorum. C # da çoğu durumda mirastan kaçınılabileceği görülüyordu. …

5
Python karışımları anti-patern midir?
Bunun pylintve diğer statik analiz araçlarının her şeyi bilmediğini ve bazen onların tavsiyelerine uyulmaması gerektiğinin farkındayım. (Bu sadece conventions için değil, çeşitli mesaj sınıfları için geçerlidir .) Eğer sınıflarım varsa class related_methods(): def a_method(self): self.stack.function(self.my_var) class more_methods(): def b_method(self): self.otherfunc() class implement_methods(related_methods, more_methods): def __init__(self): self.stack = some() self.my_var = …

10
Alt sınıflarının API'sini kirletse bile, kendilerini yaratan nesnelere sahip olmak uygun mudur?
Benim bir temel sınıfım var Base. İki alt sınıfı var Sub1ve Sub2. Her alt sınıfın bazı ek yöntemleri vardır. Örneğin, Sub1yer alır Sandwich makeASandwich(Ingredients... ingredients), ve Sub2yer alır boolean contactAliens(Frequency onFrequency). Bu yöntemler farklı parametreler alıp tamamen farklı şeyler yaptıkları için tamamen uyumsuzlar ve bu sorunu çözmek için sadece polimorfizm …

7
Neden inşaatçılar miras almıyor?
Bir kurucu temel sınıftan miras kaldığında sorunların neler olabileceği konusunda kafam karıştı. Cpp Astar Plus diyor ki, Yapıcılar, diğer nesneler yeni nesneler oluşturdukları için diğer sınıf yöntemlerinden farklıdır, oysa diğer yöntemler mevcut nesneler tarafından çağrılır . Bu, yapıcıların miras alınmamasının bir nedenidir . Kalıtım, türetilmiş bir nesnenin temel sınıf yöntemini …
33 c++  inheritance 

10
“Çocuk x = yeni Çocuk ();” yerine “Üst x = yeni Çocuk ();”, ikincisini kullanabilirsek kötü bir uygulama mı?
Örneğin, bunun gibi bir parça oluşturan bazı kodlar görmüştüm: Fragment myFragment=new MyFragment(); bu bir değişkeni MyFragment yerine Fragment olarak bildirir, ki MyFragment bir Fragment alt sınıfıdır. Bu kod satırını karşılamam çünkü bu kodun olması gerektiğini düşünüyorum: MyFragment myFragment=new MyFragment(); Hangisi daha belirgin, bu doğru mu? Veya sorunun genelleştirmesinde, kullanımı kötü …


7
Miras alınan yöntemleri test etmeli miyim?
Çalışan bir temel sınıf Çalışan türetilmiş bir sınıf Yöneticim olduğunu ve bu Çalışanın Yönetici tarafından miras alınan bir getEmail () yöntemine sahip olduğunu varsayalım . Bir yöneticinin getEmail () yönteminin davranışının bir çalışanın davranışlarıyla aynı olduğunu test etmeli miyim ? Bu testler yazıldığı zaman davranış aynı olacaktır, fakat elbette gelecekte …

4
Prototip miras, pratik olarak klasik mirastan ne kadar farklıdır?
Kalıtım, Polimorfizm ve Kapsülleme, OOP'nin en belirgin üç önemli özelliğidir ve bunlardan, kalıtımın bu günlerde yüksek kullanım istatistiklerine sahiptir. JavaScript öğreniyorum ve burada hepsi prototip mirası olduğunu söylüyorlar ve her yerdeki insanlar bunun klasik mirastan çok farklı bir şey olduğunu söylüyor . Ancak, pratik kullanım açısından farklılıklarının ne olduğunu anlayamıyorum. …

5
Mantıklı (ama) karmaşık kalıtımla ilgili pek çok küçük sınıf
Gelecekte iyi OOP tasarımı, temiz kod, esneklik ve kod kokularından kaçınmak açısından neyin daha iyi olduğunu merak ediyorum. Sınıf olarak temsil etmeniz gereken çok sayıda benzer nesneye sahip olduğunuz görüntü durumu. Bu sınıflar belirli bir işlevselliğe sahip değildir, sadece veri sınıflarıdır ve sadece adlarına (ve bağlamına) göre farklıdır Class A …

3
Miras alınmayan herhangi bir OO dili var mı?
Bugün bir kod incelemesi sırasında bir meslektaşım ilginç bir şey söyledi: prototypemirasa ihtiyaç duyduğunuzda - ve miras ne zaman iyi bir fikirdir ? Bunu düşündüm ve ilk başta, kötü bir şekilde tasarlanan kodu bulmak için genellikle miras kullandığımı fark ettim. Modern OO tarzı mirasa bağlı olarak kompozisyonu tercih ediyor, ancak …

3
Ortak işlevleri paylaşacak Windows formları için en iyi tasarım
Geçmişte, uygulamamda Windows formlarının uzantısına izin vermek için kalıtım kullandım. Tüm formlarımın ortak denetimleri, resimleri ve işlevleri varsa, ortak denetimleri ve işlevleri uygulayan bir temel form oluşturur ve sonra diğer denetimlerin bu temel formdan devralmasına izin veririm. Ancak, bu tasarımla ilgili birkaç sorunla karşılaştım. Kontroller aynı anda yalnızca bir kapta …

3
Ön koşulların güçlendirilmesi ve son koşulların zayıflaması Liskov ikame ilkesini nasıl ihlal eder?
Liskov'un ikame ilkesinin aşağıdaki durumlarda ihlal edildiğini okudum : Ön koşullar güçlendirildi veya Son koşullar zayıfladı Ancak bu iki noktanın Liskov oyuncu değiştirme ilkesini nasıl ihlal edeceğini henüz tam olarak anlayamıyorum. Birisi lütfen bir örnekle açıklayabilir mi? Özellikle, yukarıdaki koşullardan herhangi biri, bir alt sınıf nesnesinin bir üst sınıf nesne …

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.