W świecie OO abstrakcyjne klasy używane do narzucania pewnych ograniczeń implementacji projektu &. Nic więcej. W żadnym wypadku nie musisz używać klas abstrakcyjnych. Ale mogą istnieć przypadki, w których lepiej narzucić te ograniczenia. Więc czym one są?Spójrzmy na to porównując jego odpowiedniki z oo.
Klasy abstrakcyjne vs interfejsy
Jak wiadomo, są to dwa z podstawowych pojęć dziedziczenia.
Zasadniczo interfejs służy tylko do deklarowania, że chcesz odziedziczyć podstawową usługę i to wszystko. Nie zawiera implementacji & nie ma funkcjonalności. W tym sensie interfejs jest abstrakcyjny. Dlatego jest to bardziej ograniczenie projektowe niż ograniczenie implementacyjne. Pomyśl o gniazdku słuchawkowym na głośniku. Każde wyjście słuchawkowe musi zaimplementować interfejs jack (z funkcjami start, stop, listen, turnDown, turnup). Każde wyjście słuchawkowe powinno zastąpić ten interfejs, aby dziedziczyć funkcje, które zapewnia i odpowiednio implementuje głośnik.
Klasy abstrakcyjne, z drugiej strony, mogą zawierać metody z implementacją. To podstawowa różnica iw tym sensie może wykorzystywać więcej niż interfejs. Ponadto mogą zawierać prywatne, chronione niestatyczne pola, których nie można uzyskać za pośrednictwem interfejsów. Możesz wymusić na podklasach implementację niektórych niezbędnych funkcji za pomocą metod abstrakcyjnych (bez implementacji). Klasy abstrakcyjne bardziej zwinne niż interfejsy.
Oczywiście nie wspominając o tym, że można rozszerzyć tylko jedną klasę w języku Java, w której można implementować wiele interfejsów.
Klasy abstrakcyjne vs regularne zajęcia
Więc dlaczego nie użyć regularne zajęcia czasu. Jaka jest korzyść z używania klasy abstrakcyjnej? To jest całkiem proste. Jeśli używasz klas abstrakcyjnych, wymuszasz implementację podstawowej funkcjonalności przez rodzeństwo. Jako programista nie musisz pamiętać, że powinieneś wdrożyć podstawowe funkcje. To tutaj klasy abstrakcyjne nakładają ograniczenia projektowe na zwykłe klasy. Dodatkowo, tworząc streszczenie klasy, unikasz tej (niepełnej) klasy, która ma zostać utworzona przypadkowo.
Czy spadkodawcy powinni podać przyczynę odrzucenia odpowiedzi?!?! – apollodude217