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 2 klasy, jedna zawiera MethodA, a druga zawiera MethodB. Więc w nowej klasie muszę zastąpić metody MethodA i MethodB. Jak więc osiągnąć wielokrotne dziedziczenie w celu C? Jestem trochę zdezorientowany ze składnią.
Chciałbym wiedzieć, jak zachować się instanceofoperator w Javie. interface C {} class B {} public class A { public static void main(String args[]) { B obj = new B(); System.out.println(obj instanceof A); //Gives compiler error System.out.println(obj instanceof C); //Gives false as output } } Dlaczego tak się dzieje? Nie ma …
Nie wiem, jak zastępowanie różni się od ukrywania w Javie. Czy ktoś może podać więcej szczegółów na temat różnic między nimi? Przeczytałem samouczek Java, ale przykładowy kod nadal mnie zdezorientował. Żeby było jaśniej, dobrze rozumiem nadpisywanie. Mój problem polega na tym, że nie widzę, czym różni się ukrywanie, z wyjątkiem …
Dlaczego poniższy kod generuje ten błąd, mimo że c jest strukturą i domyślnie ma dziedziczenie publiczne? struct c { protected: int i; public: c(int ii=0):i(ii){} virtual c *fun(); }; c* c::fun(){ cout<<"in c"; return &c(); } class d : c { public: d(){} d* fun() { i = 9; cout<<"in …
Mam hierarchię obiektów, którą muszę ujawnić za pośrednictwem interfejsu API RESTful i nie jestem pewien, jak powinny być zbudowane moje adresy URL i co powinny zwracać. Nie udało mi się znaleźć żadnych najlepszych praktyk. Powiedzmy, że mam psy i koty dziedziczące po zwierzętach. Potrzebuję operacji CRUD na psach i kotach; …
Zmieniam niektóre z moich klas z szerokiego użycia metod pobierających i ustawiających na bardziej Pythonowe użycie właściwości. Ale teraz utknąłem, ponieważ niektóre z moich poprzednich metod pobierających lub ustawiających wywoływałyby odpowiednią metodę klasy bazowej, a następnie wykonywałyby coś innego. Ale jak można to osiągnąć za pomocą właściwości? Jak wywołać metodę …
Załóżmy, że mamy następujące klasy: class A { void recursive(int i) { System.out.println("A.recursive(" + i + ")"); if (i > 0) { recursive(i - 1); } } } class B extends A { void recursive(int i) { System.out.println("B.recursive(" + i + ")"); super.recursive(i + 1); } } Teraz wezwijmy recursiveklasę …
Kontynuując moje poprzednie pytanie , pracowałem nad uzyskaniem serializacji mojego modelu obiektowego do XML. Ale teraz mam problem (quelle niespodzianka!). Problem polega na tym, że mam kolekcję, która jest abstrakcyjnym typem klasy bazowej, która jest zapełniana przez konkretne typy pochodne. Pomyślałem, że byłoby dobrze po prostu dodać atrybuty XML do …
Rozumiem, że dziedziczenie metod statycznych nie jest obsługiwane w języku C #. Przeczytałem również kilka dyskusji (w tym tutaj), w których programiści twierdzą, że potrzebują tej funkcjonalności, na co typową odpowiedzią jest „jeśli potrzebujesz dziedziczenia statycznego elementu członkowskiego, w Twoim projekcie jest błąd”. OK, biorąc pod uwagę, że OOP nie …
Całkiem niedawno czytałem o używaniu wywołań JavaScript w MDC https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call jeden link z przykładu pokazanego poniżej, nadal nie rozumiem. Dlaczego używają tutaj dziedziczenia w ten sposób Prod_dept.prototype = new Product(); czy to konieczne? Ponieważ istnieje wywołanie superkonstruktora w programie Prod_dept() w każdym razie w ten sposób Product.call czy to po …
$ cat inheritance.cpp #include <iostream> using namespace std; class A { }; class B : private A { }; int main() { A* ab = new B; } $ $ g++ inheritance.cpp inheritance.cpp: In function 'int main()': inheritance.cpp:9: error: 'A' is an inaccessible base of 'B' $ Po prostu nie …
Dokumentacja Java dla Classmówi: Classobiekty są konstruowane automatycznie przez wirtualną maszynę języka Java podczas ładowania klas i przez wywołania defineClassmetody w programie ładującym klasy. Co to za Classobiekty? Czy są one tym samym, co obiekty tworzone z klasy przez wywołanie new? Na przykład, w object.getClass().getName()jaki sposób wszystko może zostać wpisane …
Obecnie uczę się dziedziczenia klas na moim kursie Java i nie rozumiem, kiedy używać super()wywołania? Edycja: znalazłem ten przykład kodu, w którym jest używany:super.variable class A { int k = 10; } class Test extends A { public void m() { System.out.println(super.k); } } Rozumiem więc, że tutaj musisz użyć, …
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.