Różnica między klasą abstrakcyjną a dziedziczeniem

Spisu treści:

Różnica między klasą abstrakcyjną a dziedziczeniem
Różnica między klasą abstrakcyjną a dziedziczeniem

Wideo: Różnica między klasą abstrakcyjną a dziedziczeniem

Wideo: Różnica między klasą abstrakcyjną a dziedziczeniem
Wideo: Czym jest inżynieria systemów w inżynierii oprogramowania? 2024, Lipiec
Anonim

Klasa abstrakcyjna a dziedziczenie

Klasa abstrakcyjna i Dziedziczenie to dwie ważne koncepcje zorientowane obiektowo, które można znaleźć w wielu językach programowania zorientowanych obiektowo, takich jak Java. Klasę abstrakcyjną można uznać za abstrakcyjną wersję zwykłej (konkretnej) klasy, podczas gdy Dziedziczenie pozwala nowym klasom rozszerzać inne klasy. Klasa abstrakcyjna to klasa, której nie można zainicjować, ale można ją rozszerzyć. Tak więc klasy abstrakcyjne mają sens tylko wtedy, gdy język programowania obsługuje dziedziczenie. W Javie klasy abstrakcyjne deklarowane są za pomocą słowa kluczowego Abstract, natomiast słowo kluczowe Extends służy do dziedziczenia po klasie (super).

Co to jest klasa abstrakcyjna?

Zazwyczaj klasy abstrakcyjne, znane również jako abstrakcyjne klasy bazowe (ABC), nie mogą być tworzone (nie można utworzyć wystąpienia tej klasy). Tak więc klasy abstrakcyjne mają sens tylko wtedy, gdy język programowania obsługuje dziedziczenie (możliwość tworzenia podklas z rozszerzenia klasy). Klasy abstrakcyjne zwykle reprezentują abstrakcyjną koncepcję lub jednostkę z częściową implementacją lub bez implementacji. Dlatego klasy abstrakcyjne działają jako klasy nadrzędne, z których pochodzą klasy potomne, dzięki czemu klasa potomna będzie współdzielić niekompletne cechy klasy nadrzędnej, a funkcjonalność może zostać dodana w celu ich ukończenia.

Klasy abstrakcyjne mogą zawierać metody abstrakcyjne. Podklasy rozszerzające klasę abstrakcyjną mogą implementować te (dziedziczone) metody abstrakcyjne. Jeśli klasa potomna implementuje wszystkie takie metody abstrakcyjne, jest to klasa konkretna. Ale jeśli tak nie jest, klasa potomna staje się również klasą abstrakcyjną. Oznacza to, że kiedy programista wyznacza klasę jako Abstrakt, mówi, że klasa będzie niekompletna i będzie zawierała elementy, które muszą zostać uzupełnione przez dziedziczące podklasy. To fajny sposób na stworzenie kontraktu między dwoma programistami, który upraszcza zadania w tworzeniu oprogramowania. Programista, który pisze kod do dziedziczenia, musi dokładnie przestrzegać definicji metod (ale oczywiście może mieć własną implementację).

Co to jest dziedziczenie?

Dziedziczenie to koncepcja zorientowana obiektowo, która pozwala nowym klasom rozszerzać inne klasy. Słowo kluczowe Extends służy do implementacji koncepcji dziedziczenia w języku programowania Java. Dziedziczenie zasadniczo zapewnia ponowne wykorzystanie kodu, umożliwiając rozszerzenie właściwości i zachowania istniejącej klasy o nowo zdefiniowaną klasę. Kiedy nowa podklasa (lub klasa pochodna) rozszerza superklasę (lub klasę nadrzędną), ta podklasa odziedziczy wszystkie atrybuty i metody superklasy. Podklasa może opcjonalnie przesłonić zachowanie (zapewnić nową lub rozszerzoną funkcjonalność metodom) odziedziczone z klasy nadrzędnej. Zazwyczaj podklasa A nie może rozszerzać wielu superklas (np. w Javie). Dlatego nie można używać rozszerzeń do wielokrotnego dziedziczenia. Aby mieć wielokrotne dziedziczenie, musisz użyć interfejsów.

Jaka jest różnica między klasą abstrakcyjną a dziedziczeniem?

Klasy abstrakcyjne zwykle reprezentują abstrakcyjne pojęcie lub jednostkę z częściową implementacją lub bez implementacji. Dziedziczenie pozwala nowym klasom rozszerzać inne klasy. Ponieważ nie można utworzyć instancji klas abstrakcyjnych, musisz użyć koncepcji dziedziczenia, aby skorzystać z klas abstrakcyjnych. W przeciwnym razie klasa Abstract jest bezużyteczna. Klasy abstrakcyjne mogą zawierać metody abstrakcyjne, a gdy klasa jest rozszerzona, wszystkie metody (abstrakcyjna i konkretna) są dziedziczone. Odziedziczona klasa może implementować dowolną lub wszystkie metody. Jeśli wszystkie metody abstrakcyjne nie są zaimplementowane, ta klasa staje się również klasą abstrakcyjną. Klasa nie może dziedziczyć z więcej niż jednej klasy abstrakcyjnej (nie jest to cecha klas abstrakcyjnych per se, ale raczej ograniczenie dziedziczenia).

Powiązane posty:

Image
Image
Image
Image

Różnica między klasą abstrakcyjną a klasą konkretną

Image
Image
Image
Image

Różnica między wirtualnym a abstrakcyjnym

Image
Image
Image
Image

Różnica między klasą abstrakcyjną a interfejsem

Image
Image
Image
Image

Różnica między osprzętem a przedłużeniami

Image
Image
Image
Image

Różnica między wykresem a drzewem

Zarchiwizowane pod: Programowanie Oznaczone tagiem: ABC, abstrakcyjne, Abstrakcyjne klasy bazowe, Klasa abstrakcyjna, Klasy abstrakcyjne, Słowo kluczowe abstrakcyjne, Metody abstrakcyjne, klasa konkretna, Słowo kluczowe rozszerzające, Dziedziczenie, Klasa dziedziczenia, klasa dziedziczona, Java, dziedziczenie wielokrotne, koncepcje obiektowe, klasa zwykła, super klasa

Obraz
Obraz

O autorze: Indika

Indika, BSc. Eng, MSCE Inżynieria komputerowa, PhD. Informatyka, jest adiunktem i ma zainteresowania badawcze w dziedzinie bioinformatyki, biologii obliczeniowej i biomedycznego przetwarzania języka naturalnego.

Komentarze

  1. Obraz
    Obraz

    Jason mówi

    30 sierpnia 2017 o 13:25

    Dziękuję za wyjaśnienie różnicy. Wszystkie moje pytania zostały przez to rozwiązane.

    Odpowiedz

  2. Obraz
    Obraz

    Aus mówi

    10 maja 2019 o 15:04

    najlepsza odpowiedź w sieci, nauczyciel nie wyjaśnia gówna i nie ma sensu, monotonny mf. W ten sposób wyjaśniasz pojęcia.

    Odpowiedz

Zostaw odpowiedź Anuluj odpowiedź

Twój adres e-mail nie zostanie opublikowany. Pola wymagane są oznaczone

Komentarz

Nazwa

E-mail

Strona internetowa

Poproś o artykuł
Poproś o artykuł
Poproś o artykuł
Poproś o artykuł

Polecane posty

Różnica między koronawirusem a objawami przeziębienia
Różnica między koronawirusem a objawami przeziębienia

Różnica między koronawirusem a objawami przeziębienia

Różnica między koronawirusem a SARS
Różnica między koronawirusem a SARS

Różnica między koronawirusem a SARS

Różnica między koronawirusem a grypą
Różnica między koronawirusem a grypą

Różnica między koronawirusem a grypą

Różnica między koronawirusem a Covid 19
Różnica między koronawirusem a Covid 19

Różnica między koronawirusem a Covid 19

Możesz polubić

Różnica między husky syberyjskim a malamute

Różnica między rachunkiem różniczkowym AB i BC

Zalecana: