Pytania otagowane jako abstract-class

Klasy abstrakcyjne to klasy, których nie można utworzyć. Istnieją, aby zapewnić wspólną funkcjonalność i specyfikacje interfejsu dla kilku konkretnych klas.


30
Interfejs vs Klasa abstrakcyjna (ogólne OO)
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 …




15
Kiedy stosować: domyślna metoda interfejsu Java 8+, a nie metoda abstrakcyjna
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ą …


29
Jak powinienem wyjaśnić różnicę między interfejsem a klasą abstrakcyjną?
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. …

14
Jak testować jednostkowo klasy abstrakcyjne: rozszerzaj za pomocą kodów pośredniczących?
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 …



12
Czy w Pythonie można tworzyć klasy abstrakcyjne?
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. …



5
Dlaczego warto korzystać z klas abstrakcyjnych w Pythonie?
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ć …

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.