Co to jest klasa abstrakcyjna?
W programowaniu obiektowym klasa abstrakcyjna zapewnia klasę podstawową, której można użyć do zapewnienia innym klasom częściowej implementacji i interfejsu. Są one same w sobie niekompletne i używane w sytuacjach dziedziczenia w wielu językach programowania, takich jak Java, C ++ i C #. Ich użycie jako klasy bazowej oznacza, że często są one nazywane abstrakcyjną klasą bazową (ABC).
Abstrakcja danych, integralna część programowania obiektowego, usuwa niepotrzebne szczegóły obiektu. Zasadniczo sprowadza obiekt do jego głównych cech identyfikujących. Te podstawowe cechy zapewniają schemat, którego można użyć do tworzenia innych obiektów o tych samych właściwościach, różniących się jedynie szczegółami.
Ten plan jest zdefiniowany jako klasa. Klasy są używane do enkapsulacji kodu, co ułatwia programiście, ponieważ może on odwoływać się do określonych wspólnych procedur zamiast pisać je w kółko. Programiści tworzą obiekty podrzędne z klas, a te obiekty dziedziczą funkcje i metody w klasie nadrzędnej.
Klasa abstrakcyjna ma być ramą, na której budowane są inne klasy. Obiekty nie mogą być tworzone bezpośrednio z klasy abstrakcyjnej, tylko z podklas należących do klasy abstrakcyjnej. Aby obiekt mógł odziedziczyć po klasie abstrakcyjnej, należy utworzyć podklasę. Obiekty utworzonej podklasy klasy abstrakcyjnej dziedziczą właściwości tej klasy abstrakcyjnej.
Każda klasa modeluje pojęcie, a klasy abstrakcyjne mają tendencję do modelowania bardziej abstrakcyjnych pojęć przy użyciu metod abstrakcyjnych. Metody abstrakcyjne to podprogramy wewnątrz klasy abstrakcyjnej, które nie zawierają żadnej implementacji. Te podprogramy są używane jako symbole zastępcze, które mają zostać zastąpione przez podklasę lub obiekt zaprojektowany w oparciu o klasę zawierającą samą metodę abstrakcyjną.
Istnieją różne metody tworzenia klasy abstrakcyjnej. Na przykład w C ++ klasa abstrakcyjna jest tworzona przez opracowanie klasy z co najmniej jedną metodą abstrakcyjną lub czystą funkcją wirtualną. Java używa słowa kluczowego „streszczenie”, aby określić klasę abstrakcyjną. Nie są one jednak zdefiniowane w językach programowania, które nie obsługują idei dziedziczenia.
Dziedziczenie to proces tworzenia nowych obiektów z klas, w których nowe obiekty mogą korzystać z funkcji i metod zdefiniowanych w ich klasach nadrzędnych bez konieczności ponownego tworzenia programu. Dlatego przydatna jest klasa abstrakcyjna. Klasy potomne i obiekty potomne tych podklas dziedziczą właściwości z nadrzędnej klasy abstrakcyjnej. Klasy abstrakcyjne są uważane za nadklasy i znajdują się na szczycie hierarchii struktury klas, więc nie mają sensu w języku, który nie obsługuje dziedziczenia.