Dziedziczenie to system programowania obiektowego, który umożliwia obiektom obsługę operacji zdefiniowanych przez typy przednie bez konieczności podawania własnej definicji. Jest to główny wektor polimorfizmu w programowaniu obiektowym.
Mam plik: Base.h class Base; class DerivedA : public Base; class DerivedB : public Base; /*etc...*/ i inny plik: BaseFactory.h #include "Base.h" class BaseFactory { public: BaseFactory(const string &sClassName){msClassName = sClassName;}; Base * Create() { if(msClassName == "DerivedA") { return new DerivedA(); } else if(msClassName == "DerivedB") { return new …
Czytałem Podręcznik programisty po certyfikacji Java ™ SCJP autorstwa Khalida Mughala. W rozdziale Dziedziczenie wyjaśnia to Dziedziczenie członków jest ściśle związane z ich deklarowaną dostępnością. Jeśli element członkowski nadklasy jest dostępny poprzez swoją prostą nazwę w podklasie (bez użycia dodatkowej składni, takiej jak super), ten element członkowski jest uznawany za …
Czy istnieje sposób na stworzenie abstrakcyjnej klasy w Swift Language, czy jest to ograniczenie, tak jak Objective-C? Chciałbym stworzyć klasę abstrakcyjną porównywalną z tym, co Java definiuje jako klasę abstrakcyjną.
W pliku nagłówkowym natknąłem się na następujący kod: class Engine { public: void SetState( int var, bool val ); { SetStateBool( int var, bool val ); } void SetState( int var, int val ); { SetStateInt( int var, int val ); } private: virtual void SetStateBool(int var, bool val ) …
Mam coś List<SubClass>, co chcę traktować jako List<BaseClass>. Wygląda na to, że nie powinno to stanowić problemu, ponieważ rzutowanie a SubClassna a BaseClassjest bardzo proste, ale mój kompilator narzeka, że rzutowanie jest niemożliwe. Jaki jest więc najlepszy sposób na uzyskanie odniesienia do tych samych obiektów, co List<BaseClass>? W tej chwili …
Biorąc pod uwagę klasę Foo(niezależnie od tego, czy jest to klasa w nowym stylu, czy nie), w jaki sposób można wygenerować wszystkie klasy podstawowe - w dowolnym miejscu w hierarchii dziedziczenia - issubclassz?
Jakie są najlepsze praktyki dotyczące modelowania dziedziczenia w bazach danych? Jakie są kompromisy (np. Wątpliwość)? (Najbardziej interesują mnie SQL Server i .NET, ale chcę też zrozumieć, jak inne platformy rozwiązują ten problem).
Mam dwie klasy Java: B, która rozszerza inną klasę A w następujący sposób: class A { public void myMethod() { /* ... */ } } class B extends A { public void myMethod() { /* Another code */ } } Chciałbym zadzwonić pod numer A.myMethod()nadawcy B.myMethod(). Pochodzę ze świata C …
Chcę wiedzieć, czy klasa może dziedziczyć po klasie i interfejsie. Poniższy przykładowy kod nie działa, ale myślę, że przekazuje to, co chcę zrobić. Powodem, dla którego chcę to zrobić, jest to, że w mojej firmie produkujemy urządzenia USB, szeregowe, Ethernet itp. Próbuję opracować ogólny komponent / interfejs, którego będę mógł …
Stwierdziłem, że oba poniższe działania: class Foo(): def a(self): print "hello" class Foo(object): def a(self): print "hello" Czy wszystkie klasy Pythona powinny rozszerzać obiekt? Czy są jakieś potencjalne problemy z nierozciąganiem obiektu?
Czy jest jakaś różnica między List<Map<String, String>> i List<? extends Map<String, String>> ? Jeśli nie ma różnicy, jakie są korzyści z używania ? extends?
Wiem, że struktury w .NET nie obsługują dziedziczenia, ale nie jest do końca jasne, dlaczego są w ten sposób ograniczone. Jaki powód techniczny uniemożliwia strukturom dziedziczenie po innych strukturach?
Chciałbym stworzyć abstrakcyjną funkcję w szybkim języku. Czy to możliwe? class BaseClass { func abstractFunction() { // How do I force this function to be overridden? } } class SubClass : BaseClass { override func abstractFunction() { // Override } }
W Rubim, ponieważ możesz dołączyć wiele mikserów, ale rozszerzyć tylko jedną klasę, wygląda na to, że mieszanki byłyby preferowane zamiast dziedziczenia. Moje pytanie: jeśli piszesz kod, który musi zostać rozszerzony / dołączony, aby był użyteczny, dlaczego miałbyś kiedykolwiek zrobić z tego klasę? Innymi słowy, dlaczego nie zrobiłbyś z tego zawsze …
Czy interfejs może rozszerzyć wiele interfejsów w Javie? Ten kod wygląda na prawidłowy w moim IDE i kompiluje się: interface Foo extends Runnable, Set, Comparator<String> { } ale słyszałem, że wielokrotne dziedziczenie nie jest dozwolone w Javie. Dlaczego wydaje się, że istnieje wyjątek dla interfejsów?
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.