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.
W jednym z moich wywiadów poproszono mnie o wyjaśnienie różnicy między klasą interfejsu a klasą abstrakcyjną . Oto moja odpowiedź: Metody interfejsu Java są domyślnie abstrakcyjne i nie mogą mieć implementacji. Klasa abstrakcyjna Java może mieć metody instancji, które implementują domyślne zachowanie. Zmienne zadeklarowane w interfejsie Java są domyślnie ostateczne. …
To może być ogólne pytanie dotyczące OOP. Chciałem dokonać ogólnego porównania interfejsu z klasą abstrakcyjną na podstawie ich użycia. Kiedy chciałoby się użyć interfejsu, a kiedy klasy abstrakcyjnej ?
Jak mogę zrobić streszczenie klasy lub metody w Pythonie? Próbowałem przedefiniować __new__()tak: class F: def __new__(cls): raise Exception("Unable to create an instance of abstract class %s" %cls) ale teraz, jeśli utworzę klasę, Gktóra odziedziczy po niej F: class G(F): pass nie mogę też utworzyć instancji G, ponieważ wywołuje __new__metodę superklasy. …
Mam to w moim pliku SCSS: .class-a{ display: inline-block; //some other properties &:hover{ color: darken(#FFFFFF, 10%); } } .class-b{ //Inherite class-a here //some properties } W klasie b chciałbym odziedziczyć wszystkie właściwości i zagnieżdżone deklaracje class-a. Jak to się robi? Próbowałem użyć @include class-a, ale to po prostu generuje błąd …
W pracy miałem za zadanie przekształcić kilka HTMLplików w prosty JSPprojekt. To naprawdę wszystko jest statyczne, bez programowania po stronie serwera. Powinienem wspomnieć, że jestem zupełnie nowy w Javie. Wydaje się, że pliki JSP ułatwiają pracę ze zwykłymi włącznikami i zmiennymi, PHPale chciałbym znać prosty sposób na uzyskanie dziedziczenia szablonów …
W części dotyczącej dziedziczenia w artykule MDN Wstęp do JavaScript zorientowanego obiektowo zauważyłem, że ustawili prototype.constructor: // correct the constructor pointer because it points to Person Student.prototype.constructor = Student; Czy to ma jakiś ważny cel? Czy można to pominąć?
Próbuję zdefiniować własną klasę wyjątków w najprostszy sposób, a oto, co otrzymuję: public class MyException extends Exception {} public class Foo { public bar() throws MyException { throw new MyException("try again please"); } } Tak mówi kompilator Java: cannot find symbol: constructor MyException(java.lang.String) Miałem wrażenie, że ten konstruktor musi zostać …
W końcu przestałem ciągnąć stopy przez te wszystkie lata i postanowiłem nauczyć się JavaScript „poprawnie”. Jednym z najbardziej porywających elementów projektowania języków jest implementacja dziedziczenia. Mając doświadczenie w Ruby, bardzo cieszyłem się z zamykania i dynamicznego pisania; ale przez całe życie nie mogę zrozumieć, jakie korzyści można uzyskać z instancji …
Jedną z głównych zalet Javascript jest to, że jest to język oparty na prototypach. Ale co to znaczy, że JavaScript jest oparty na prototypach i dlaczego jest to zaleta?
Java 8 wprowadza domyślne metody zapewniające możliwość rozszerzenia interfejsów bez potrzeby modyfikowania istniejących implementacji. Zastanawiam się, czy możliwe jest jawne wywołanie domyślnej implementacji metody, gdy metoda ta została zastąpiona lub nie jest dostępna z powodu sprzecznych domyślnych implementacji w różnych interfejsach. interface A { default void foo() { System.out.println("A.foo"); } …
To pytanie do wywiadu. Czy podklasy dziedziczą pola prywatne? Odpowiedziałem „Nie”, ponieważ nie możemy uzyskać do nich dostępu w „normalny sposób OOP”. Jednak ankieter uważa, że są one dziedziczone, ponieważ możemy uzyskać dostęp do takich pól pośrednio lub za pomocą odbicia i nadal istnieją w obiekcie. Po powrocie znalazłem w …
Zastanawiam się, jak reprezentować złożoną strukturę w bazie danych SQL Server. Rozważ aplikację, która musi przechowywać szczegóły rodziny obiektów, które mają pewne atrybuty, ale wiele innych nie jest wspólnych. Na przykład pakiet ubezpieczeń komercyjnych może obejmować ochronę od odpowiedzialności cywilnej, komunikacyjnej, majątkowej i odszkodowawczej w ramach tego samego zapisu polisy. …
Nie rozumiem, dlaczego w adnotacjach Java nie ma dziedziczenia, podobnie jak w klasach Java. Myślę, że byłoby to bardzo przydatne. Na przykład: Chcę wiedzieć, czy dana adnotacja jest walidatorem. Dzięki dziedziczeniu mogłem odruchowo poruszać się po superklasach, aby wiedzieć, czy ta adnotacja rozszerza ValidatorAnnotation. W przeciwnym razie, jak mogę to …
O ile rozumiem, wprowadzenie overridesłowa kluczowego w C ++ 11 jest niczym innym jak tylko sprawdzeniem, czy zaimplementowana funkcja jest overrideing virtualfunkcji w klasie bazowej. Czy to to?
Mam kilka klas, które tak naprawdę nie potrzebują żadnego stanu. Z organizacyjnego punktu widzenia chciałbym umieścić je w hierarchii. Ale wydaje się, że nie mogę zadeklarować dziedziczenia dla klas statycznych. Coś w tym stylu: public static class Base { } public static class Inherited : Base { } nie będzie …
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.