Pytania otagowane jako inheritance

Dziedziczenie to sposób na ponowne użycie kodu istniejących obiektów lub ustanowienie podtypu z istniejącego obiektu, lub obu, w zależności od obsługi języka programowania.

5
Jak zdefiniowanie, że metodę można zastąpić silniejszym zaangażowaniem, niż zdefiniowanie, że można wywołać metodę?
Od: http://www.artima.com/lejava/articles/designprinciples4.html Erich Gamma: Nadal uważam, że to prawda, nawet po dziesięciu latach. Dziedziczenie to fajny sposób na zmianę zachowania. Wiemy jednak, że jest kruchy, ponieważ podklasa może łatwo przyjmować założenia dotyczące kontekstu, w którym wywoływana jest metoda zastępowana. Istnieje ścisłe powiązanie między klasą podstawową a podklasą z powodu niejawnego …

5
Kiedy powinienem rozszerzyć klasę Java Swing?
Moje obecne rozumienie implementacji dziedziczenia jest takie, że należy rozszerzać klasę tylko wtedy, gdy istnieje relacja IS-A . Jeśli klasa nadrzędna może dodatkowo mieć bardziej szczegółowe typy podrzędne o różnych funkcjach, ale będzie miała wspólne elementy wyodrębnione w obiekcie nadrzędnym. Kwestionuję to zrozumienie z powodu tego, co zaleca nam mój …



5
Czy miksy Pythona są anty-wzorcem?
W pełni zdaję sobie sprawę, że pylinti inne narzędzia analizy statycznej nie są wszechwiedzące, a czasem ich radom należy się nie posłuchać. (Dotyczy to różnych klas wiadomości, nie tylko conventions.) Jeśli mam zajęcia takie jak 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): …

7
Dlaczego konstruktory nie są dziedziczone?
Jestem zdezorientowany, jakie mogą być problemy, jeśli konstruktor zostanie odziedziczony z klasy podstawowej. Cpp Primer Plus mówi: Konstruktory różnią się od innych metod klasowych tym, że tworzą nowe obiekty, podczas gdy inne metody są wywoływane przez istniejące obiekty . Jest to jeden z powodów, dla których konstruktory nie są dziedziczone …
33 c++  inheritance 

10
Czy można mieć obiekty, które się rzucają, nawet jeśli zanieczyszczają interfejs API ich podklas?
Mam klasy bazowej, Base. Ma dwie podklasy Sub1i Sub2. Każda podklasa ma kilka dodatkowych metod. Na przykład Sub1ma Sandwich makeASandwich(Ingredients... ingredients)i Sub2ma boolean contactAliens(Frequency onFrequency). Ponieważ metody te przyjmują różne parametry i robią zupełnie różne rzeczy, są całkowicie niezgodne i nie mogę po prostu użyć polimorfizmu do rozwiązania tego problemu. …

10
Czy „Parent x = new Child ();” zamiast „Child x = new Child ();” jest złą praktyką, jeśli możemy użyć tego drugiego?
Na przykład widziałem niektóre kody, które tworzą taki fragment: Fragment myFragment=new MyFragment(); który deklaruje zmienną jako Fragment zamiast MyFragment, który MyFragment jest klasą potomną Fragment. Nie jestem usatysfakcjonowany tą linią kodów, ponieważ uważam, że ten kod powinien być: MyFragment myFragment=new MyFragment(); co jest bardziej szczegółowe, czy to prawda? Lub w …


7
Czy powinienem testować odziedziczone metody?
Załóżmy, że mam menedżera klas wywodzącego się z pracownika klasy podstawowej i że pracownik ma metodę getEmail (), która jest dziedziczona przez menedżera . Czy powinienem sprawdzić, czy zachowanie metody getEmail () menedżera jest w rzeczywistości takie samo jak zachowanie pracownika? W momencie pisania tych testów zachowanie będzie takie samo, …

4
Czym właściwie dziedziczenie prototypowe różni się od dziedziczenia klasycznego?
Dziedziczenie, polimorfizm i enkapsulacja to trzy najbardziej wyraźne, ważne cechy OOP, a od nich dziedziczenie ma obecnie wysoką statystykę użytkowania. Uczę się JavaScript, a tutaj wszyscy mówią, że ma on dziedzictwo prototypowe, a ludzie na całym świecie mówią, że jest to coś zupełnie innego niż klasyczne dziedzictwo. Nie rozumiem jednak, …

5
Wiele małych klas a logiczne (ale) zawiłe dziedziczenie
Zastanawiam się, co jest lepsze pod względem dobrego projektowania OOP, czystego kodu, elastyczności i unikania zapachów kodu w przyszłości. Sytuacja obrazowa, w której masz wiele bardzo podobnych obiektów, które musisz reprezentować jako klasy. Klasy te nie mają żadnej konkretnej funkcjonalności, tylko klasy danych i różnią się tylko nazwą (i kontekstem) …

3
Czy są jakieś języki OO bez dziedziczenia?
Podczas dzisiejszego przeglądu kodu mój kolega powiedział coś interesującego: prototypeprzydaje się tylko wtedy, gdy potrzebujesz dziedziczenia - a kiedy dziedziczenie jest zawsze dobrym pomysłem ? Pomyślałem o tym i zdałem sobie sprawę, że zwykle używam dziedziczenia, aby obejść kod, który został źle zaprojektowany. Współczesny styl OO woli kompozycję niż dziedziczenie, …

3
Najlepszy projekt dla formularzy Windows, które będą miały wspólną funkcjonalność
W przeszłości korzystałem z dziedziczenia, aby umożliwić rozszerzenie formularzy Windows w mojej aplikacji. Gdyby wszystkie moje formularze miały wspólne elementy sterujące, kompozycję i funkcje, utworzyłbym formularz podstawowy implementujący wspólne elementy sterujące i funkcje, a następnie pozwalałem innym elementom sterującym na dziedziczenie z tego formularza podstawowego. Jednak natrafiłem na kilka problemów …

3
W jaki sposób wzmocnienie warunków wstępnych i osłabienie warunków wtórnych narusza zasadę substytucji Liskowa?
Czytam, że zasada substytucji Liskowa jest naruszona, jeśli: Warunki wstępne są wzmocnione, lub Warunki dodatkowe są osłabione Ale jeszcze nie rozumiem, w jaki sposób te dwa punkty naruszałyby zasadę substytucji Liskowa. Czy ktoś może wyjaśnić przykład. W szczególności, w jaki sposób którykolwiek z powyższych warunków spowodowałby sytuację, w której obiekt …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.