Jaka jest różnica między funkcją abstrakcyjną a funkcją wirtualną? W jakich przypadkach zaleca się stosowanie wirtualnych lub abstrakcyjnych? Które z nich jest
abstract to słowo kluczowe wspólne dla wielu języków programowania obiektowego. Metody i klasy można oznaczyć jako abstrakcyjne, aby wskazać, że nie zawierają pełnej implementacji logiki aplikacji i muszą zostać rozszerzone. Klasy abstrakcyjne nie mogą być tworzone i służą do zapewnienia jednolitego interfejsu dla ich podklas, a także do implementacji typowych metod, które nie muszą być ponownie implementowane dla każdej podklasy.
Jaka jest różnica między funkcją abstrakcyjną a funkcją wirtualną? W jakich przypadkach zaleca się stosowanie wirtualnych lub abstrakcyjnych? Które z nich jest
Podczas jednego z moich wywiadów zapytano mnie: „Czy możemy stworzyć instancję abstrakcyjną?” Moja odpowiedź brzmiała: „Nie, nie możemy”. Ale ankieter powiedział mi: „Źle, możemy”. Trochę się o to spierałem. Potem kazał mi sam to wypróbować w domu. abstract class my { public void mymethod() {...
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ż...
Rozważ przykład (który kompiluje się w Javie) public abstract interface Interface { public void interfacing(); public abstract boolean interfacing(boolean really); } Dlaczego konieczne jest „zadeklarowanie” interfejsu jako abstrakcyjne? Czy istnieją inne reguły dotyczące abstrakcyjnego...
Przechodzę przez klasy w pliku jar i chcę znaleźć te, które nie są abstrakcyjne. Mogę rozwiązać ten problem, tworząc instancję klas i zatrzymując wyjątek InstantiationException, ale ma to negatywny wpływ na wydajność, ponieważ niektóre klasy mają ciężki start. Nie mogę znaleźć niczego takiego jak...
Wydaje się, że klasy danych zastępują staromodne POJO w Javie. Można się spodziewać, że te klasy pozwoliłyby na dziedziczenie, ale nie widzę wygodnego sposobu na rozszerzenie klasy danych. Potrzebuję czegoś takiego: open data class Resource (var id: Long = 0, var location: String = "") data class...
Użyłem dziś funkcji refaktoryzacji „pull interface” Eclipse, aby stworzyć interfejs oparty na istniejącej klasie. W oknie dialogowym można było utworzyć wszystkie nowe metody nowego interfejsu jako metody „abstrakcyjne”. Jaka byłaby z tego korzyść? Pomyślałem, że to, że wolno ci deklarować metody...
Po włączeniu ścisłych ostrzeżeń w PHP 5.2, zobaczyłem ładunek ostrzeżeń o ścisłych standardach z projektu, który został pierwotnie napisany bez ścisłych ostrzeżeń: Ścisłe standardy : funkcja statyczna Program :: getSelectSQL () nie powinna być abstrakcyjna w Program.class.inc Omawiana funkcja...
Czy mogę zdefiniować klasę abstrakcyjną bez dodawania metody
Czy można symulować abstrakcyjną klasę bazową w JavaScript? Jaki jest najbardziej elegancki sposób na zrobienie tego? Powiedz, chcę zrobić coś takiego: - var cat = new Animal('cat'); var dog = new Animal('dog'); cat.say(); dog.say(); Powinien wyświetlić: „szczekanie”,...
Metody języka C # w interfejsach są deklarowane bez użycia virtualsłowa kluczowego i zastępowane w klasie pochodnej bez użycia overridesłowa kluczowego. Czy jest tego powód? Zakładam, że to tylko wygoda językowa, a CLR oczywiście wie, jak sobie z tym poradzić pod okładkami (metody nie są domyślnie...
Dlaczego klasy Java nie mogą mieć pól abstrakcyjnych, tak jak mogą mieć metody abstrakcyjne? Na przykład: Mam dwie klasy, które rozszerzają tę samą abstrakcyjną klasę bazową. Każda z tych dwóch klas ma metodę, która jest identyczna, z wyjątkiem stałej String, która jest komunikatem o błędzie....
Czy istnieje standardowy sposób tworzenia „czystej funkcji wirtualnej” w języku Swift, tj. taki, który musi być nadpisany przez każdą podklasę, a jeśli tak nie jest, powoduje błąd czasu kompilacji?