Herencia de pitón

Herencia de pitón

El Python es un lenguaje de programación orientado a objetos. En un lenguaje de programación orientado a objetos, creamos las clases y realizamos la funcionalidad prevista. La herencia es la característica fundamental de los lenguajes de programación orientados a objetos. La herencia se puede definir como la capacidad de una clase para heredar todas las funciones y propiedades de otra clase. La herencia esencialmente permite extender las propiedades de una clase existente. La herencia se aprovecha con los dos conceptos principales:

  1. Clase matriz o clase base
  2. Clase infantil o clase derivada

La clase matriz es la clase que permite que otras clases sean heredadas de. También se llama clase base. La clase infantil o la clase derivada es esa clase que hereda todas las propiedades y funciones de otra clase. La herencia promueve varios beneficios,.mi., Es la representación del fenómeno de la herencia del mundo real. Fomenta la reutilización del código. Si una función se define en una clase, la otra clase puede heredar esta clase y usar todas las funciones existentes. No hay necesidad de escribir el mismo código una y otra vez para realizar tareas similares. La herencia se aplica en múltiples niveles. Por ejemplo, si la clase B se hereda de A y la Clase C se hereda de la Clase B, entonces la Clase C tiene todas las propiedades de la Clase B y la Clase A. La sintaxis de la herencia es la siguiente:

Clase parentClass:
Detalles de implementación de la clase principal
Clase de clases de niños:
Detalles de implementación de la clase infantil

Aunque la clase infantil tiene acceso a todas las características y funciones de la clase principal, sin embargo, también puede agregar sus nuevas características y funciones.

Este artículo describe y cubre todos los aspectos de la herencia de Python.

Implementación de herencia en Python

La herencia se puede aplicar en numerosas situaciones. Supongamos que está creando un sistema de software para una universidad. Puede estar compuesto por múltiples partes interesadas como estudiantes, maestros, personal, etc. Entonces, cada persona tiene un nombre, edad, correo electrónico y otras propiedades comunes. No es necesario declarar todas las propiedades en cada clase por separado. Podemos hacer una clase de persona, y todas las clases de las partes interesadas pueden heredar todas las propiedades y funciones comunes de la clase de la persona. En este caso, no hay necesidad de escribir las propiedades comunes en cada clase una y otra vez. Del mismo modo, podemos considerar una clase de animales. Hay cientos de tipos de animales en este mundo. Todos los animales comen, duermen y tienen algunas especies también. Este concepto también se puede implementar utilizando la herencia.

Consideremos al animal como una súper clase e implementemos la herencia. En el siguiente ejemplo dado, hemos creado una clase de animales. La clase animal es la clase padre. Además, hemos creado las clases de perro y gato que heredan las propiedades y funciones de la clase animal. La palabra clave PASS se usa en la clase infantil, cuando no tenemos que implementar ninguna funcionalidad extendida en la clase infantil.

#creación de la clase de los padres
Animal de clase:
#función de inicialización
#initilización el nombre del animal y el tipo de especificación
def __init __ (self, nombre, specie_type):
ser.nombre = nombre
ser.specie_type = specie_type
#a función para imprimir el nombre del animal
Def printname (self):
Imprimir ("El nombre del animal es:", Self.nombre)
#a función para imprimir el tipo de especie de animal
Def printspecie (self):
imprimir ("El tipo de especie es:", Self.specie_type)
#creing a la clase de perros como clase infantil de clase animal
perro de clase (animal):
# Sin extensión o modificación
aprobar
#La clase de perros ahora tiene acceso a todas las funciones y propiedades de la clase de animales
#creing el objeto de clase de perro
dogobj = perro ("perro", "carnívoro")
dogobj.printname ()
dogobj.printspecie ()
#creing la clase de gato como clase infantil de clase animal
Clase Cat (animal):
#La función de inicilización de la clase CAT
def __init __ (self):
#calling y uso de la función de inicilización de clase animal
Animal.__init __ (yo, "gato", "mamífero carnívoro")
#La clase de gatos ahora tiene acceso a todas las funciones y propiedades de la clase de animales
#creing el objeto de clase de gato
Catobj = Cat ()
catobj.printname ()
catobj.printspecie ()

Producción

El "Animal.__init __ (yo mismo, "gato", "mamífero carnívoro") " Llame es la función de inicialización de la clase animal.

La función super ()

El Python proporciona una función super () incorporada para heredar todas las propiedades y funciones de la clase principal. Cuando usamos la función super (), entonces no hay necesidad de mencionar el nombre de la clase principal como lo hicimos en "Animal.__init __ (yo mismo, "gato", "mamífero carnívoro") " Pero la función super () apunta automáticamente a la clase principal. Usemos la súper función.

#creación de la clase de los padres
Animal de clase:
#función de inicialización
#initilización el nombre del animal y el tipo de especificación
def __init __ (self, nombre, specie_type):
ser.nombre = nombre
ser.specie_type = specie_type
#a función para imprimir el nombre del animal
Def printname (self):
Imprimir ("El nombre del animal es:", Self.nombre)
#a función para imprimir el tipo de especie de animal
Def printspecie (self):
imprimir ("El tipo de especie es:", Self.specie_type)
#creing a la clase de perros como clase infantil de clase animal
perro de clase (animal):
Función #using super ()
def __init __ (self, nombre, specie_type):
súper().__init __ (nombre, specie_type)
#La clase de perros ahora tiene acceso a todas las funciones y propiedades de la clase de animales
#creing el objeto de clase de perro
dogobj = perro ("perro", "carnívoro")
dogobj.printname ()
dogobj.printspecie ()
#creing la clase de gato como clase infantil de clase animal
Clase Cat (animal):
#La función de inicilización de la clase CAT
Función #using super ()
def __init __ (self, nombre, specie_type):
súper().__init __ (nombre, specie_type)
#La clase de gatos ahora tiene acceso a todas las funciones y propiedades de la clase de animales
#creing el objeto de clase de gato
Catobj = gato ("gato", "mamífero carnívoro")
catobj.printname ()
catobj.printspecie ()

Producción

Ahora agregemos más funcionalidades en las clases de niños. Cada clase hereda las propiedades y funciones comunes de la clase principal, pero la clase infantil puede tener una clase adicional destinada a esta clase en particular. Ahora creemos algunas propiedades y funciones adicionales en el perro, y la clase de gato.

#creación de la clase de los padres
Animal de clase:
#función de inicialización
#initilización el nombre del animal y el tipo de especificación
def __init __ (self, nombre, specie_type):
ser.nombre = nombre
ser.specie_type = specie_type
#a función para imprimir el nombre del animal
Def printname (self):
Imprimir ("El nombre del animal es:", Self.nombre)
#a función para imprimir el tipo de especie de animal
Def printspecie (self):
imprimir ("El tipo de especie es:", Self.specie_type)
#creing a la clase de perros como clase infantil de clase animal
perro de clase (animal):
Función #using super ()
El nombre de #pet es una funcionalidad recientemente agregada
def __init __ (self, nombre, specie_type, pet_name):
súper().__init __ (nombre, specie_type)
ser.pet_name = pet_name
#creing una nueva función
Def printPetName (self):
Imprimir ("El nombre de la mascota es:", Self.nombre de mascota)
#La clase de perros ahora tiene acceso a todas las funciones y propiedades de la clase de animales
#creing el objeto de clase de perro
dogobj = perro ("perro", "carnívoro", "max")
dogobj.printname ()
dogobj.printspecie ()
dogobj.printPetName ()
#creing la clase de gato como clase infantil de clase animal
Clase Cat (animal):
#La función de inicilización de la clase CAT
Función #using super ()
#Propiedades de alimentos y pet_name
def __init __ (self, nombre, specie_type, comida, pet_name):
súper().__init __ (nombre, specie_type)
ser.comida = comida
ser.pet_name = pet_name
#NUEVA función para acceder a la información de alimentos
Def printfood (self):
Imprimir ("El gato le gusta:", Self.alimento)
#NUEVA función para el nombre de la mascota
Def printPetName (self):
Imprimir ("El nombre de la mascota es:", Self.nombre de mascota)
#La clase de gatos ahora tiene acceso a todas las funciones y propiedades de la clase de animales
#creing el objeto de clase de gato
Catobj = gato ("gato", "mamífero carnívoro", "galleta", "margarita")
catobj.printname ()
catobj.printspecie ()

Producción

Las funciones anulantes

La función de la función es el concepto importante en la herencia. Una función se denomina función anulada si el nombre de la función es el mismo en las clases parentales e infantiles, pero la implementación o funcionalidad de la función es diferente en cada clase. Veamos el ejemplo de la función anulada en la clase animal. En el siguiente ejemplo dado, tenemos una función de comer en las clases de animales y en sus clases infantiles (perro y gato) también. El nombre de la función es el mismo en las clases, pero la implementación es diferente.

#creación de la clase de los padres
Animal de clase:
Def comer (yo):
Imprimir ("Todos los animales comen comida")
#creating Object
animalobj = animal ()
#función de llamada
animalobj.comer()
#creación de la clase de perros
perro de clase (animal):
Def comer (yo):
Imprimir ("El perro come carne")
#creating Object
dogobj = perro ()
#función de llamada
dogobj.comer()
Clase Cat (animal):
Def comer (yo):
Imprimir ("El gato come galletas y algo de comida especial")
#creating Object
Catobj = Cat ()
#función de llamada
catobj.comer()

Producción

Conclusión

La herencia es uno de los conceptos fundamentales de los lenguajes de programación orientados a objetos. Al usar la herencia, creamos las clases de niños que heredan todas las funciones y propiedades de la clase principal. La herencia promueve la reutilización del código. Este artículo explica la herencia en Python con ejemplos.