Plik dziedziczenie w programowaniu zorientowany obiektowo to sposób organizowania obiektów w hierarchii od najbardziej ogólnej do najbardziej szczegółowej. Jest to gadżet używany do rozszerzenia klasy na inną klasę, zachowując analogiczne wykonanie.
W większości języków obiektowych opartych na klasach obiekt utworzony przez dziedziczenie, nazywany obiektem potomnym, otrzymuje wszystkie właściwości i zachowania obiektu nadrzędnego..
Dlatego jest to jakość, która reprezentuje relacje między różnymi klasami. Dziedziczenie pozwala klasie zachowywać się tak samo jak inna klasa i rozszerzać lub dostosowywać to zachowanie, aby zapewnić specjalną akcję dla określonych potrzeb.
Dziedziczenie może pomóc w przedstawieniu obiektów, które mają pewne różnice i pewne podobieństwa w sposobie ich działania. Możesz umieścić wszystkie funkcje wspólne dla obiektów w klasie bazowej, a następnie zdefiniować jedną lub więcej podklas za pomocą własnych niestandardowych funkcji.
Indeks artykułów
Dziedziczenie jest jedną z kluczowych cech programowania zorientowanego obiektowo, która służy do definiowania nowej klasy na podstawie istniejących klas.
Oznacza to, że nowe klasy mogą pochodzić z istniejących klas podstawowych, dodając nowe funkcje. Nie musisz pisać od zera. Dlatego dziedziczenie umożliwia łatwe ponowne wykorzystanie istniejącego kodu.
Jeśli masz już klasę, która robi prawie wszystko, co chcesz, możesz utworzyć podklasę, która częściowo przesłania część jej zachowania, lub być może dodano jakąś nową funkcjonalność..
Klasa pochodna dziedziczy wszystkie metody klasy bazowej, z wyjątkiem następujących:
- Konstruktory, destruktory i konstruktory kopiujące klasy bazowej.
- Operatory przeciążone w klasie bazowej.
- Funkcje przyjazne dla klasy bazowej.
Dziedziczenie, podobnie jak drzewo genealogiczne, służy do tworzenia hierarchii klas. Należy zauważyć, że atrybuty określone dla klasy bazowej będą automatycznie obecne w klasie pochodnej. Również metody dla klasy bazowej będą działać dla pochodnych.
O klasie mówi się, że jest podklasą klasy, z której dziedziczy. Z drugiej strony ta klasa będzie twoją superklasą. Najbardziej ogólną klasę można nazwać klasą bazową, ponieważ jest ona podstawą hierarchii.
Dziedziczenie jest bardzo popularne w niektórych językach z typami statycznymi, ponieważ pozwala programiście uniknąć niektórych ograniczeń typu statycznego.
Obiekt, który dziedziczy po innym obiekcie, jest uważany za podtyp tego obiektu. Przykładem mogą być obiekty „instruktor” i „student”, z których każdy dziedziczy po „osobie”.
Jeśli instruktor i uczeń są tego samego typu osoby, możesz napisać funkcję, która akceptuje typ osoby jako parametr i która działa na obiektach instruktora i ucznia, ponieważ obie są spadkobiercami osoby.
Gdy klasa pochodna dziedziczy właściwości i zachowanie pojedynczej klasy bazowej. Oznacza to, że jedna klasa rozciąga się na inną pojedynczą klasę.
Odnosi się do gadżetu, w którym można dziedziczyć z klasy pochodnej, czyniąc tę klasę pochodną klasą bazową dla nowej klasy. Oznacza to, że powstaje, gdy klasa pochodna jest tworzona z innej klasy pochodnej.
W tym dziedziczeniu wiele podklas dziedziczy z jednej klasy. Oznacza to, że dzieje się tak, gdy pojedyncza klasa bazowa jest dziedziczona przez więcej niż jedną klasę pochodną.
Jest to dziedziczenie wynikające z połączenia dowolnego z trzech poprzednich dziedziczenia (jedno, hierarchiczne i wielopoziomowe).
Odpowiada liczbie dziedziczenia, gdy klasa dziedziczy z więcej niż jednej nadklasy. Wadą tego typu dziedziczenia jest to, że klasa pochodna będzie musiała radzić sobie z zależnością, którą ma od dwóch klas bazowych.
Z drugiej strony ten typ dziedziczenia umożliwia programistom tworzenie klas, które łączą aspekty wielu klas i odpowiadające im hierarchie..
Gdy klasa pochodzi z publicznej klasy bazowej, publiczne elementy członkowskie klasy bazowej stają się publicznymi członkami klasy pochodnej, a chronione elementy członkowskie klasy bazowej stają się chronionymi członkami klasy pochodnej.
Prywatne elementy członkowskie superklasy nigdy nie będą dostępne bezpośrednio z klasy pochodnej, ale można uzyskać do nich dostęp za pośrednictwem wywołań publicznych i chronionych członków klasy bazowej..
Podczas tworzenia klasy, która dziedziczy po chronionej nadklasie, zarówno publiczni, jak i chronieni członkowie tej nadklasy staną się chronionymi członkami klasy pochodnej.
Podczas tworzenia podklasy z prywatnej nadklasy, publiczni i chronieni członkowie tej nadklasy staną się prywatnymi członkami podklasy.
Aby pokazać, jak działa zasada dziedziczenia, weźmiemy roboty lub lepszą klasę robotów w języku programowania Python. Aby to zrobić, klasa o nazwie RobotMédico (LekarzRobot), która pochodzi z nadklasy Robot.
Jeśli spojrzysz na kod klasy RobotMédico, zobaczysz, że żaden atrybut ani metoda nie została zdefiniowana w tej klasie.
Ponieważ klasa RobotMedico jest podklasą klasy Robot, w tym przypadku dziedziczy zarówno metodę __init__, jak i say_hi. Dziedziczenie tych metod oznacza, że można ich używać tak, jakby zostały zdefiniowane w klasie RobotMédico..
Podczas tworzenia instancji RobotMédico funkcja __init__ utworzy również atrybut nazwy. Metodę say_hi można zastosować do obiektu „y” w RobotMédico, jak widać w wyniku poprzedniego kodu.
Klasa może dziedziczyć z więcej niż jednej klasy, co oznacza, że może dziedziczyć dane i funkcje z wielu nadklas. Aby zdefiniować klasę pochodną, do określenia klas bazowych używana jest lista pochodnych klas.
Lista pochodnych klas w C ++ nazywa jedną lub więcej klas bazowych i ma następującą postać: klasa Klasy pochodnej: specyfikator dostępu klasa bazowa, w którym specyfikator dostępu to jest publiczny, chroniony lub prywatny, Y klasa bazowa to nazwa wcześniej zdefiniowanej klasy. Jeśli nie jest używany specyfikator dostępu, Zajęte prywatny domyślna.
Możesz myśleć o nadklasie „Kształt” i jej pochodnej klasie „Prostokąt” w następujący sposób:
Gdy powyższy kod jest kompilowany i wykonywany, pojawia się następujący wynik: „Całkowita powierzchnia: 35”.
Jeszcze bez komentarzy