«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.

9
Kalıtım için tasarım ekstra maliyete nasıl yol açabilir? [kapalı]
Kapalı . Bu soru görüş temelli . Şu anda cevapları kabul etmiyor. Bu soruyu geliştirmek ister misiniz? Bu yayını düzenleyerek gerçekler ve alıntılarla yanıtlanabilmesi için soruyu güncelleyin . 6 yıl önce kapalı . Bu yüzden bir csharpsealed class in miras almak istedim ve yandı. Kaynağa erişiminiz yoksa onu açmanın hiçbir …
12 c#  inheritance 

2
Java neden C ++ gibi özel / korumalı mirası desteklemiyor? [kapalı]
Şu anda olduğu gibi, bu soru Soru-Cevap formatımıza uygun değil. Yanıtların gerçekler, referanslar veya uzmanlık tarafından desteklenmesini bekliyoruz, ancak bu soru muhtemelen tartışma, tartışma, oylama veya genişletilmiş tartışma talep edecektir. Bu sorunun çözülebileceğini ve muhtemelen yeniden açılabileceğini düşünüyorsanız, yardım için yardım merkezini ziyaret edin . 7 yıl önce kapalı . …


5
Bu senaryoda kompozisyon veya miras tercih etmeli miyim?
Bir arayüz düşünün: interface IWaveGenerator { SoundWave GenerateWave(double frequency, double lengthInSeconds); } Bu arayüz, farklı şekillerdeki dalgaları (örneğin SineWaveGeneratorve SquareWaveGenerator) üreten birkaç sınıf tarafından uygulanır . SoundWaveHam ses verilerine değil, müzik verilerine dayanan bir sınıf uygulamak istiyorum . Bir notun adını ve vuruş sayısı (saniye değil) cinsinden bir uzunluğunu alır …

5
Mutasyon yöntemleri için ayrı arayüz
Bazı kodları yeniden düzenleme üzerinde çalışıyorum ve sanırım tavşan deliğinden aşağı ilk adımı atmış olabilirim. Örneği Java ile yazıyorum, ancak sanırım agnostik olabilir. FooOlarak tanımlanan bir arayüzüm var public interface Foo { int getX(); int getY(); int getZ(); } Ve bir uygulama olarak public final class DefaultFoo implements Foo { …


5
RealNumber ve ComplexNumber mirası nasıl uygulanır?
Umarım çok akademik değil ... SW kütüphanemde gerçek ve karmaşık sayılara ihtiyacım olduğunu varsayalım. Göre olan-bir (ya da burada ) ilişki, gerçek sayı a, karmaşık sayının sanal kısmı b sadece 0 karmaşık sayı,. Öte yandan, benim uygulama, çocuk ebeveyn genişletir, bu yüzden ebeveyn RealNumber gerçek parçası olurdu ve çocuk ComplexNumber …

5
LSP'yi ihlal etmek hiç uygun mu?
Bu soruyu takip ediyorum , ama odağımı koddan ilkeye geçiriyorum. Liskov ikame ilkesini (LSP) anladığımdan, temel sınıfımda ne olursa olsun, alt sınıfımda uygulanmaları gerekir ve bu sayfaya göre , temel sınıftaki bir yöntemi geçersiz kılarsanız ve hiçbir şey yapmazsa veya istisna, prensibi ihlal ediyorsunuz. Şimdi, sorunum şu şekilde özetlenebilir: Bir …

1
Basit kompozisyon yerine zayıf referansların kullanılmasının daha iyi olacağı bir durum var mı?
Her ne kadar Java belgeleri Zayıf referansların öncelikle eşleştirmeleri standartlaştırmak için olduğunu belirtse de, internette WeakHashMap'in kullanım ömrü boyunca nesne meta verilerini depolamak için mükemmel olduğunu belirten birçok , çok , çok insan bulacaksınız . Ancak, hiç kimse anlaşılabilir VE uygun bir örnek vermekten rahatsız olmaz . Nesne eklemek için …

2
Python'un mirası “is-a” mirası mı yoksa kompozisyon tarzı mı?
Python'un çoklu kalıtıma izin verdiği göz önüne alındığında, Python'daki deyimsel kalıtım neye benziyor? Java gibi tek kalıtıma sahip dillerde, bir nesnenin başka bir nesnenin "a-a" olduğunu ve nesneler arasında (üst nesneden alt nesneye) kod paylaşmak istediğinizde kalıtım kullanılır. Örneğin, diyebiliriz Dogbir olduğunu Animal: public class Animal {...} public class Dog …

3
Kalıtım: Üst sınıftaki kod sanal olarak * alt sınıfa * kopyalanıyor mu veya * alt sınıf * ile mi adlandırılıyor?
Sınıf Sub, sınıfın bir alt sınıfıdır Sup. Bu pratikte ne anlama geliyor? Başka bir deyişle, "kalıtım" ın pratik anlamı nedir? Seçenek 1: Sup'in kodu neredeyse Sub'a kopyalanır . ('kopyala-yapıştır'da olduğu gibi, ancak kopyalanan kod alt sınıfta görsel olarak görülmeden). Örnek: methodA()başlangıçta Sup. Sub, Sup'i genişletir methodA(), (neredeyse) Sub'a kopyalanır. Şimdi …

12
“Bir yöntem değişiklik yapılmadan yeniden kullanılırsa, yöntemi bir temel sınıfa koyun, başka bir arabirim oluşturun” iyi bir kural mıdır?
Bir meslektaşım, bir temel sınıf veya bir arayüz oluşturmak arasında seçim yapmak için bir kural belirledi. Diyor: Uygulamak üzere olduğunuz her yeni yöntemi düşünün. Her biri için şunu düşünün: Bu yöntem , herhangi bir değişiklik yapılmaksızın, tam olarak bu formda birden fazla sınıf tarafından uygulanacak mı? Cevap "evet" ise, bir …

2
Prototip oluştururken yapıcıların kullanımı neden önerilmez?
Hızlı arka plan: JavaScript'te, her nesne türü için yapıcı işlevinin bir prototypeözelliği vardır. Bu prototype, her bir yapılandırılmış nesnenin, prototip zincirinde bir sonraki adım olarak kullandığı bir nesneyi ifade eder. Bir türün başka bir türden içsel olmasını istediğinizde prototype, alt türün üst türünün yeni bir örneğine ayarlayabilirsiniz . Örneğin: var …


5
Arayüz ve Kalıtım: Her iki dünyanın en iyisi mi?
Arayüzleri 'keşfettim' ve onları sevmeye başladım. Bir arayüzün güzelliği, bir sözleşme olması ve bu sözleşmeyi yerine getiren herhangi bir nesne, arayüzün gerekli olduğu her yerde kullanılabilir. Bir arabirimdeki sorun, sıradan özellikler için bir acı olan ve DRY'yi yenen varsayılan bir uygulamaya sahip olamamasıdır. Bu da iyidir, çünkü uygulamayı ve sistemi …

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.