Dziedziczenie Pythona

Dziedziczenie Pythona

Python to obiektowy język programowania. W obiektowym języku programowania tworzymy klasy i wykonujemy zamierzoną funkcjonalność. Dziedziczenie jest podstawową cechą obiektowych języków programowania. Dziedziczenie można zdefiniować jako zdolność jednej klasy do dziedziczenia wszystkich funkcji i właściwości innej klasy. Dziedziczenie zasadniczo pozwala przedłużyć właściwości istniejącej klasy. Dziedziczenie jest wykorzystane przez dwa główne koncepcje:

  1. Klasa nadrzędna lub klasa bazowa
  2. Zajęcie dzieci lub klasa pochodna

Klasa nadrzędna to klasa, która umożliwia odziedziczenie innych klas. Nazywa się to również klasą podstawową. Klasa dziecka lub klasa pochodna to klasa, która dziedziczy wszystkie właściwości i funkcje innej klasy. Dziedzictwo promuje kilka korzyści, i.mi., jest to reprezentacja zjawiska dziedziczenia świata rzeczywistego. Zachęca do ponownego użycia kodu. Jeśli funkcja jest zdefiniowana w jednej klasie, druga klasa może odziedziczyć tę klasę i użyć wszystkich istniejących funkcji. Nie trzeba pisać tego samego kodu wielokrotnie w celu wykonywania podobnych zadań. Dziedziczenie jest stosowane na wielu poziomach. Na przykład, jeśli klasa B jest dziedziczona po A, a klasa C jest dziedziczona po klasie B, wówczas klasa C ma wszystkie właściwości klasy B, a także klasy A. Składnia dziedziczenia jest następująca:

Klasowa klasa nadrzędna:
Szczegóły wdrożenia klasy nadrzędnej
klasowa klasa dziecięca:
Szczegóły wdrożenia klasy dziecięcej

Chociaż klasa dziecięca ma dostęp do wszystkich funkcji i funkcji klasy nadrzędnej, może również dodawać swoje nowe funkcje i funkcje.

W tym artykule opisano i obejmuje wszystkie aspekty dziedziczenia Pythona.

Wdrożenie dziedziczenia w Python

Dziedziczenie można zastosować w wielu sytuacjach. Załóżmy, że budujesz system oprogramowania dla uniwersytetu. Może polegać na wielu interesariuszach, takich jak uczniowie, nauczyciele, pracownicy itp. Więc każda osoba ma imię, wiek, e -mail i inne wspólne właściwości. Nie jest konieczne zadeklarowanie wszystkich właściwości w każdej klasie osobno. Możemy stworzyć klasę osoby, a wszystkie klasy interesariuszy mogą odziedziczyć wszystkie wspólne właściwości i funkcje z klasy osoby. W takim przypadku nie ma potrzeby pisania wspólnych właściwości w każdej klasie. Podobnie możemy rozważyć klasę zwierząt. Na tym świecie są setki rodzajów zwierząt. Wszystkie zwierzęta jedzą, śpią i mają również jakieś gatunki. Ta koncepcja można również wdrożyć za pomocą dziedzictwa.

Rozważmy zwierzę jako super klasę i wdrożyć dziedzictwo. W poniższym przykładzie stworzyliśmy jedną klasę zwierząt. Klasa zwierząt jest klasą rodziców. Ponadto stworzyliśmy klasy psa i kotów, które dziedziczą właściwości i funkcje klasy zwierząt. Słowo kluczowe PASS jest używane w klasie dziecięcej, gdy nie musimy wdrażać żadnej rozszerzonej funkcjonalności w klasie dzieci.

#Creating Class Class
Zwierzę klasowe:
#Funkcja Initializacja
#initizacja nazwa zwierząt i typ gatunków
def __init __ (self, nazwa, gatunek_type):
samego siebie.Nazwa = nazwa
samego siebie.CETIE_TYPE = CETIE_TYPE
#Funkcja do wydrukowania nazwy zwierzęcia
def printname (self):
Drukuj („Nazwa zwierząt to:”, jaźń.nazwa)
#A Funkcja do wydrukowania typu gatunków zwierząt
def printSpeve (self):
Drukuj („rodzaj gatunku to:”, jaźń.SECIE_TYPE)
#Ukształcenie klasy psów jako klasy dla dzieci klasy zwierząt
Pies klasy (zwierzę):
# Brak rozszerzenia lub modyfikacji
przechodzić
#Now Dog Class ma dostęp do wszystkich funkcji i właściwości klasy zwierząt
#Tworzenie obiektu klasy psów
Dogobj = pies („pies”, „carnivore”)
Dogobj.Nazwa wydruku()
Dogobj.printspeve ()
#Tworzenie klasy CAT jako klasy dla dzieci klasy zwierząt
Class Cat (zwierzę):
#Funkcja inicjalizacji klasy CAT
def __init __ (ja):
#Zakładanie i korzystanie z funkcji inicjowania klasy zwierząt
Zwierzę.__init __ (self, „cat”, „mięsożerny ssak”)
#Now Cat Class ma dostęp do wszystkich funkcji i właściwości klasy zwierząt
#Creating obiektu klasy CAT
catobj = cat ()
Catobj.Nazwa wydruku()
Catobj.printspeve ()

Wyjście

"Zwierzę.__init __ (self, „cat”, „mięsożerny ssak”) ” Zadzwoń do funkcji inicjalizacji klasy zwierząt.

Funkcja super ()

Python zapewnia wbudowaną funkcję super () do dziedziczenia wszystkich właściwości i funkcji klasy nadrzędnej. Kiedy używamy funkcji super (), nie trzeba wspominać nazwy klasy nadrzędnej, tak jak to zrobiliśmy "Zwierzę.__init __ (self, „cat”, „mięsożerny ssak”) ” Ale funkcja super () automatycznie wskazuje na klasę nadrzędną. Użyjmy super funkcji.

#Creating Class Class
Zwierzę klasowe:
#Funkcja Initializacja
#initizacja nazwa zwierząt i typ gatunków
def __init __ (self, nazwa, gatunek_type):
samego siebie.Nazwa = nazwa
samego siebie.CETIE_TYPE = CETIE_TYPE
#Funkcja do wydrukowania nazwy zwierzęcia
def printname (self):
Drukuj („Nazwa zwierząt to:”, jaźń.nazwa)
#A Funkcja do wydrukowania typu gatunków zwierząt
def printSpeve (self):
Drukuj („rodzaj gatunku to:”, jaźń.SECIE_TYPE)
#Ukształcenie klasy psów jako klasy dla dzieci klasy zwierząt
Pies klasy (zwierzę):
#Using Super () funkcja
def __init __ (self, nazwa, gatunek_type):
Super().__Init __ (nazwa, CETIE_TYPE)
#Now Dog Class ma dostęp do wszystkich funkcji i właściwości klasy zwierząt
#Tworzenie obiektu klasy psów
Dogobj = pies („pies”, „carnivore”)
Dogobj.Nazwa wydruku()
Dogobj.printspeve ()
#Tworzenie klasy CAT jako klasy dla dzieci klasy zwierząt
Class Cat (zwierzę):
#Funkcja inicjalizacji klasy CAT
#Using Super () funkcja
def __init __ (self, nazwa, gatunek_type):
Super().__Init __ (nazwa, CETIE_TYPE)
#Now Cat Class ma dostęp do wszystkich funkcji i właściwości klasy zwierząt
#Creating obiektu klasy CAT
catobj = cat („cat”, „mięsożerca ssak”)
Catobj.Nazwa wydruku()
Catobj.printspeve ()

Wyjście

Teraz dodajmy więcej funkcji w klasach dzieci. Każda klasa dziedziczy wspólne właściwości i funkcje z klasy nadrzędnej, ale klasa dziecięca może mieć dodatkową klasę, która jest przeznaczona dla tej konkretnej klasy. Teraz stwórzmy dodatkowe właściwości i funkcje w klasie psa.

#Creating Class Class
Zwierzę klasowe:
#Funkcja Initializacja
#initizacja nazwa zwierząt i typ gatunków
def __init __ (self, nazwa, gatunek_type):
samego siebie.Nazwa = nazwa
samego siebie.CETIE_TYPE = CETIE_TYPE
#Funkcja do wydrukowania nazwy zwierzęcia
def printname (self):
Drukuj („Nazwa zwierząt to:”, jaźń.nazwa)
#A Funkcja do wydrukowania typu gatunków zwierząt
def printSpeve (self):
Drukuj („rodzaj gatunku to:”, jaźń.SECIE_TYPE)
#Ukształcenie klasy psów jako klasy dla dzieci klasy zwierząt
Pies klasy (zwierzę):
#Using Super () funkcja
#PET Nazwa to nowo dodana funkcjonalność
def __init __ (self, nazwa, gatunek_typ, pet_name):
Super().__Init __ (nazwa, CETIE_TYPE)
samego siebie.Pet_name = pet_name
#Tworzenie nowej funkcji
def printPetName (self):
Drukuj („Nazwa zwierzaka to:”, jaźń.Nazwa zwierzaka)
#Now Dog Class ma dostęp do wszystkich funkcji i właściwości klasy zwierząt
#Tworzenie obiektu klasy psów
Dogobj = pies („pies”, „carnivore”, „max”)
Dogobj.Nazwa wydruku()
Dogobj.printspeve ()
Dogobj.PrintPetName ()
#Tworzenie klasy CAT jako klasy dla dzieci klasy zwierząt
Class Cat (zwierzę):
#Funkcja inicjalizacji klasy CAT
#Using Super () funkcja
#ading właściwości żywności i nazwy PET
def __init __ (self, nazwa, gatunek_typ, jedzenie, pet_name):
Super().__Init __ (nazwa, CETIE_TYPE)
samego siebie.jedzenie = jedzenie
samego siebie.Pet_name = pet_name
#NoW Funkcja dostępu do informacji o żywności
def printfood (self):
Drukuj („Kotek lubi:”, jaźń.żywność)
#New Funkcja dla nazwy zwierzaka
def printPetName (self):
Drukuj („Nazwa zwierzaka to:”, jaźń.Nazwa zwierzaka)
#Now Cat Class ma dostęp do wszystkich funkcji i właściwości klasy zwierząt
#Creating obiektu klasy CAT
catobj = cat („cat”, „carnivorous ssak”, „Biscuit”, „Daisy”)
Catobj.Nazwa wydruku()
Catobj.printspeve ()

Wyjście

Funkcje nadrzędne

Nadrzędność funkcji jest ważną koncepcją dziedziczenia. Funkcja nazywana jest zastąpioną funkcją, jeśli nazwa funkcji jest taka sama w klasach nadrzędnych i dzieci, ale implementacja lub funkcjonalność funkcji jest inna w każdej klasie. Zobaczmy przykład zastąpionej funkcji w klasie zwierząt. W poniższym przykładzie mamy funkcję jedzenia w klasach zwierząt i na jej zajęciach dla dzieci (pies i kot). Nazwa funkcji jest taka sama w klasach, ale implementacja jest inna.

#Creating Class Class
Zwierzę klasowe:
def Eat (ja):
Drukuj („Wszystkie zwierzęta jedzą żywność”)
#Obiekt określający
AnimalObj = zwierzę ()
#Funkcja
Animalobj.jeść()
#Creating Dog Class
Pies klasy (zwierzę):
def Eat (ja):
Drukuj („pies je mięso”)
#Obiekt określający
Dogobj = pies ()
#Funkcja
Dogobj.jeść()
Class Cat (zwierzę):
def Eat (ja):
Drukuj („The Cat Eat Ciasteczka i trochę specjalnego jedzenia”)
#Obiekt określający
catobj = cat ()
#Funkcja
Catobj.jeść()

Wyjście

Wniosek

Dziedziczenie jest jedną z podstawowych koncepcji języków programowania zorientowanych na obiekty. Korzystając z dziedzictwa, tworzymy klasy dzieci, które odziedziczą wszystkie funkcje i właściwości klasy nadrzędnej. Dziedziczenie promuje ponowne użycie kodu. W tym artykule wyjaśniono dziedzictwo w Pythonie z przykładami.