Klasy abstrakcyjne to klasy, których nie można utworzyć. Istnieją, aby zapewnić wspólną funkcjonalność i specyfikacje interfejsu dla kilku konkretnych klas.
Niedawno miałem dwa wywiady telefoniczne, w których zapytano mnie o różnice między klasą interfejsu a klasą abstrakcyjną. Wyjaśniłem każdy aspekt, o którym mogłem pomyśleć, ale wygląda na to, że czekają, aż wymienię coś konkretnego i nie wiem, co to jest. Z mojego doświadczenia wynika, że następujące są prawdziwe. Jeśli brakuje …
Pytanie w Javie, dlaczego nie mogę zdefiniować abstrakcyjnej metody statycznej? na przykład abstract class foo { abstract void bar( ); // <-- this is ok abstract static void bar2(); //<-- this isn't why? }
Java 8 pozwala na domyślną implementację metod w interfejsach zwanych metodami domyślnymi . Nie jestem pewien interface default method, kiedy powinienem użyć tego rodzaju zamiast abstract class(z abstract method(s)). Kiedy zatem należy stosować interfejs z metodami domyślnymi, a kiedy należy stosować klasę abstrakcyjną (z metodami abstrakcyjnymi)? Czy klasy abstrakcyjne są …
Jestem programistą Java, który teraz współpracuje z Objective-C. Chciałbym stworzyć klasę abstrakcyjną, ale nie wydaje się to możliwe w Objective-C. czy to możliwe? Jeśli nie, jak blisko klasy abstrakcyjnej mogę się zbliżyć do celu C?
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. …
Zastanawiałem się, jak testować jednostkowo klasy abstrakcyjne i klasy rozszerzające klasy abstrakcyjne. Czy powinienem przetestować klasę abstrakcyjną, rozszerzając ją, usuwając metody abstrakcyjne, a następnie testując wszystkie konkretne metody? Potem testujesz tylko metody, które zastępuję i testujesz metody abstrakcyjne w testach jednostkowych dla obiektów, które rozszerzają moją klasę abstrakcyjną? Czy powinienem …
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. …
Chciałbym przetestować klasę abstrakcyjną. Jasne, mogę ręcznie napisać próbną dziedziczenie po klasie. Czy mogę to zrobić przy użyciu frameworku (używam Mockito) zamiast ręcznego tworzenia mojej makiety? W jaki sposób?
Ponieważ jestem przyzwyczajony do starych sposobów pisania kaczek w Pythonie, nie rozumiem potrzeby ABC (abstrakcyjne klasy podstawowe). Pomoc jest dobra, w jaki sposób z nich korzystać. Próbowałem odczytać uzasadnienie w PEP , ale przeszło mi to przez głowę. Gdybym szukał kontenera sekwencji zmiennych, sprawdziłbym __setitem__, a raczej spróbuje go 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.