0% encontró este documento útil (0 votos)
18 vistas34 páginas

Programación Orientada A Objetos (Poo)

El documento aborda los conceptos fundamentales de la programación orientada a objetos (POO), incluyendo clases, objetos, atributos, métodos, herencia, encapsulamiento y polimorfismo. Se presentan ejemplos prácticos de cómo definir clases y crear objetos en Python, así como la importancia de la herencia para reutilizar código. Además, se explican los tipos de atributos y métodos, y se proporcionan ejercicios para aplicar los conceptos aprendidos.

Cargado por

clasesutn1
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
18 vistas34 páginas

Programación Orientada A Objetos (Poo)

El documento aborda los conceptos fundamentales de la programación orientada a objetos (POO), incluyendo clases, objetos, atributos, métodos, herencia, encapsulamiento y polimorfismo. Se presentan ejemplos prácticos de cómo definir clases y crear objetos en Python, así como la importancia de la herencia para reutilizar código. Además, se explican los tipos de atributos y métodos, y se proporcionan ejercicios para aplicar los conceptos aprendidos.

Cargado por

clasesutn1
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 34

P2

Programación 2
| Al finalizar la clase, los estudiantes serán
capaces de utilizar los conceptos fundamentales
de la programación orientada a objetos para -Ia-
Inteligencia
crear programas eficientes y reutilizables. artificial y
Ciencia de
datos

| Definir los conceptos básicos de la programación orientada


PROGRAMACIÓN a objetos, incluyendo clases, objetos, atributos y métodos. MÓDULO
DIDÁCTICO
ORIENTADA A
| Crear clases para modelar objetos en programas, incluyendo
OBJETOS (POO)
UNIDAD
la definición de atributos y métodos.

| Aplicar el concepto de herencia para extender y especializar


clases existentes.

CLASE | Utilizar el polimorfismo para permitir la intercambiabilidad


de objetos de diferentes clases.
Introducción a la Programación Orientada a Objetos

La programación orientada a objetos (POO) es un paradigma de programación que se basa


en la idea de que todo en un programa se puede modelar como un objeto, que tiene atributos y
métodos. Es decir, en lugar de pensar en términos de procedimientos o funciones, la POO se enfoca
en los objetos y su interacción.

En la POO, se utilizan clases para definir los objetos, las cuales son una especie de plantilla que
describe cómo se deben crear los objetos. Los objetos son instancias de estas clases, y cada uno
tiene su propia identidad, estado y comportamiento.

Conceptos fundamentales

| Clases: son estructuras que permiten definir un objeto y su comportamiento. Una clase describe
las propiedades y métodos que tienen todos los objetos de ese tipo. Por ejemplo, si creamos una
clase "Persona", podemos definir que todas las personas tienen un nombre y una edad, así como
métodos para obtener o modificar esos valores.

| Objetos: Los objetos son instancias de una clase. Cada objeto tiene sus propios atributos y
métodos, pero se construyen a partir de la misma plantilla (la clase). Por ejemplo, si creamos un
objeto "Juan" de la clase "Persona", tendrá su propio nombre y edad, pero se construirá a partir
de la misma plantilla que todos los demás objetos de la clase "Persona".

2
| Atributos: Los atributos son las propiedades de un objeto. Cada objeto tiene sus propios valores
de atributos, aunque pueden tener los mismos nombres que los atributos de otros objetos. Los
atributos se definen en la clase y se inicializan en el momento de la creación del objeto. Por
ejemplo, un atributo de la clase "Persona" podría ser el nombre o la edad.

| Métodos: Los métodos son las funciones que se definen en una clase y que se pueden invocar
en los objetos de esa clase. Son las acciones que puede realizar un objeto. Los métodos se definen
en la clase y se ejecutan en los objetos. Por ejemplo, un método de la clase "Persona" podría ser
"saludar", que imprimiría un mensaje de saludo.

| Herencia: es la capacidad de crear una nueva clase a partir de una clase existente,
manteniendo las características de la clase original y agregando nuevas características o
modificando las existentes. Por ejemplo, si creamos una clase "Estudiante" a partir de la
clase "Persona", podemos agregar nuevos atributos como la carrera o la nota promedio, pero
seguiríamos teniendo los atributos originales como el nombre y la edad.

| Encapsulamiento: es la capacidad de ocultar los detalles internos de una clase, para que
los objetos que la utilizan no necesiten conocer cómo está implementada la clase. Esto se logra
mediante la definición de métodos públicos y privados en la clase. Los métodos públicos son
aquellos que pueden ser llamados desde fuera de la clase, mientras que los métodos privados sólo
pueden ser llamados desde dentro de la clase.

| Polimorfismo: es la capacidad de utilizar un mismo método con diferentes objetos, y que


el comportamiento sea diferente dependiendo del objeto que se esté utilizando. Esto se logra
mediante la definición de métodos con el mismo nombre en diferentes clases, y utilizando el objeto
adecuado para cada llamada al método.
3
Veamos un ejemplo de cómo se puede usar POO donde vamos a representar la clase “Perro” con
atributos y métodos:

#Definición de la clase Perro


class Perro:
#El método constructor (__init__) se llama cuando se crea un
nuevo objeto
def __init__(self, nombre, raza):
self.nombre = nombre # Atributo de instancia para el
nombre
self.raza = raza # Atributo de instancia para la raza
# Método para que el perro ladre
def ladrar (self):
print(f"{self.nombre} está ladrando.")
#Crear una instancia (objeto) de la clase Perro
mi_perro = Perro ("Fido", "Labrador")
#Acceder a los atributos y métodos del perro
nombre_del_perro = mi_perro.nombre
raza_del_perro = mi_perro.raza
#Imprimir información del perro
print(f"Nombre del perro: {nombre_del_perro}")
print(f"Raza del perro: {raza_del_perro}")
#Hacer que el perro ladre
mi_perro.ladrar()

4
En este ejemplo, hemos creado una clase llamada Perro. Aquí está una explicación detallada:

1 | Definimos la clase Perro utilizando la palabra clave class.

2 | Dentro de la clase, definimos el método constructor __init__. Este método se llama


automáticamente cuando creamos una nueva instancia de la clase (mi_perro = Perro("Fido",
"Labrador")). El constructor toma dos parámetros: nombre y raza, y establece los atributos de
instancia self.nombre y self.raza con los valores proporcionados.

3 | Luego, definimos un método llamado ladrar. Este método simplemente imprime un mensaje que
indica que el perro está ladrando.

4 | Creamos una instancia de la clase Perro llamada mi_perro y le proporcionamos un nombre y


una raza.

5 | Accedemos a los atributos nombre y raza de mi_perro utilizando la notación de punto (mi_
perro.nombre y mi_perro.raza) y los almacenamos en variables.

6 | Imprimimos la información del perro, incluyendo su nombre y raza.

7 | Finalmente, llamamos al método ladrar en mi_perro, lo que hace que el perro ladre y se
imprima el mensaje correspondiente.

Probablemente te parece confuso en este momento, pero vamos a seguir analizando cada uno de
estos conceptos y poco a poco el panorama se va a aclarar.

5
Clases y Objetos

Las clases y objetos son conceptos fundamentales de la programación orientada a objetos (POO),
que permite modelar objetos del mundo real en el software.

Definición de clases y objetos

Una clase es una plantilla o molde que define las propiedades y comportamientos comunes a un
conjunto de objetos. Por otro lado, un objeto es una instancia o ejemplar particular de una clase
que tiene sus propias propiedades y comportamientos.

6
Creación de una clase básica con atributos y métodos

La sintaxis básica para crear una clase en la mayoría de los lenguajes de programación orientados a
objetos es la siguiente:

class NombreClase:
def __init__(self, atributol, atributo2, ...):
self.atributo1 = atributo1
self.atributo2 = atributo2
...
def metodo1(self, parametro1, parametro2, ...):
# Código del método
...
def metodo2(self, parametro1, parametro2, ...):
# Código del método
...

Donde __init__ es un método especial que se llama constructor y se utiliza para inicializar los
atributos de la clase. Los métodos son funciones que definen los comportamientos de los objetos.

7
Ejemplo de creación de objetos a partir de una clase

Supongamos que queremos crear una clase Persona con los atributos nombre, edad y altura y los
métodos presentarse y cumplir_anios. La definición de la clase sería la siguiente:

class Persona:
def __init__(self, nombre, edad, altura):
self.nombre = nombre
self.edad = edad
self.altura = altura
def presentarse(self):
print(f'Mi nombre es ¨{self.nombre} y mido {self.altura}
metros')
def cumplir_anios(self):
self.edad += 1
print(f'¡Feliz cumpleaños! Ahora tengo {self.edad} años')

8
Para crear un objeto de esta clase, podemos hacer lo siguiente:

persona1 = Persona('Juan', 25, 1.75)

Este código crea un objeto llamado persona1 de la clase Persona con los valores Juan para el
atributo nombre, 25 para el atributo edad y 1.75 para el atributo altura.

Podemos llamar a los métodos de la clase para que el objeto haga algo:

persona1.presentarse() # Imprime "Mi nombre es Juan y mido 1.75


metros"
personal.cumplir_anios() # Imprime "¡Feliz cumpleaños! Ahora tengo
26 años"Ejercicio de creación de una clase sencilla y creación de objetos a partir de ella:

9
Desempeño 1

| Crear una clase Perro con los atributos nombre, raza y edad y los
métodos ladrar y envejecer. Crear un objeto de la clase Perro llamado
perro1 y llamar a los métodos del objeto perro1.
Solución

class Perro:
def __init__(self, nombre, raza, edad):
self.nombre = nombre
self.raza = raza
self.edad = edad
def ladrar(self):
print(f'{self.nombre} está ladrando')
def envejecer(self):
self.edad += 1
print(f'{self.nombre} cumplió años
perro1 = Perro("Fido", "Labrador", 5)
perro1.ladrar() # Imprime: ¡Guau, guau!
perro1.envejecer(1)
print(perro1.edad) # Imprime: 6

11
En este ejemplo, hemos creado un objeto de la clase Perro llamado perro1 con los atributos
nombre, raza y edad. El método ladrar imprime un mensaje de ladrido por la consola, mientras
que el método envejecer actualiza la edad del perro sumando la cantidad de años que se le pase
como argumento. Finalmente, hemos llamado a ambos métodos del objeto perro1 para comprobar
que funcionan correctamente.

Este ejercicio es una simple aplicación de la creación de clases y objetos en Python, sin embargo,
podríamos extender esta clase con nuevos métodos y atributos para hacerla más útil en un
contexto de inteligencia artificial o machine learning, por ejemplo, si quisiéramos utilizar la clase
Perro para crear un modelo de clasificación de imágenes de perros basado en su raza.

12
Atributos y Métodos

En Python, una clase es una plantilla que define la estructura y el comportamiento de un objeto.
Los objetos se crean a partir de una clase y contienen atributos (variables) y métodos (funciones).
Los atributos son las características de un objeto, mientras que los métodos son las acciones que
el objeto puede realizar.

Definición de atributos y métodos:

Los atributos son las variables que definen las características de un objeto, mientras que los
métodos son las funciones que definen las acciones que un objeto puede realizar.

Explicación de los diferentes tipos de atributos y métodos:

| Atributos de instancia: Son los atributos que se definen dentro del método constructor de la
clase y que pertenecen a una instancia específica de la clase. Estos atributos pueden ser accedidos y
modificados por los métodos de la instancia.

| Atributos de clase: Son los atributos que se definen fuera de cualquier método de la clase y
que pertenecen a la clase en sí misma. Estos atributos pueden ser accedidos y modificados por
cualquier instancia de la clase.

13
| Métodos de instancia: Son los métodos que operan en las instancias de una clase y que pueden
acceder y modificar los atributos de instancia. Estos métodos son llamados a través de una
instancia de la clase.

| Métodos de clase: Son los métodos que operan en la clase en sí misma y que pueden acceder y
modificar los atributos de clase. Estos métodos son llamados a través de la clase en sí misma.

Ejemplo de uso de atributos y métodos en una clase:

class Persona:
def __init__(self, nombre, edad):
self.nombre = nombre
self.edad = edad
def hablar(self, mensaje):
print(self.nombre + " dice: " + mensaje)
def envejecer(self, años):
self.edad += años

En este ejemplo, hemos creado la clase Persona con dos atributos de instancia:
nombre y edad, y dos métodos de instancia: hablar y envejecer. El método init es
el constructor de la clase y se utiliza para inicializar los atributos de instancia. El
método hablar recibe un mensaje y lo imprime en la consola, mientras que el método
envejecer recibe una cantidad de años y actualiza la edad de la persona.

14
Para crear un objeto de la clase Persona y llamar a sus métodos, podemos hacer lo siguiente:

p = Persona ("Juan", 30)


p.hablar("Hola, ¿cómo estás?")
p.envejecer(1)
print(p.edad) # Imprime: 31

En este caso, hemos creado un objeto de la clase Persona llamado p con los atributos de
instancia nombre y edad, y hemos llamado a los métodos hablar y envejecer del objeto. También
hemos impreso la edad actual del objeto en la consola.

15
Desempeño 2

| Ejercicio de creación de una clase con atributos y métodos:

Creemos una clase Coche con los atributos marca, modelo y velocidad y
los métodos acelerar y frenar.
Solución

class Coche:
def __init__(self, marca, modelo):
self.marca = marca
self.modelo = modelo
self.velocidad = 0
def acelerar (self, velocidad):
self.velocidad += velocidad
def frenar(self, velocidad):
self.velocidad -= velocidad

En este ejemplo, hemos creado la clase Coche con tres atributos de instancia: marca, modelo
y velocidad, y dos métodos de instancia: acelerar y frenar. El método init es el constructor de la
clase y se utiliza para inicializar los atributos de instancia. El método acelerar recibe una velocidad
y aumenta la velocidad actual del coche, mientras que el método frenar recibe una velocidad y
disminuye la velocidad actual del coche.

17
Para crear un objeto de la clase Coche y llamar a sus métodos, podemos hacer lo siguiente:

c = Coche("Ford", "Mustang")
print(c.marca, c.modelo, c.velocidad) # Imprime: Ford Mustang 0
c.acelerar(50)
print(c.velocidad) # Imprime: 50
c.frenar(20)
print(c.velocidad) # Imprime: 30

En este caso, hemos creado un objeto de la clase Coche llamado c con los atributos de instancia
marca, modelo y velocidad, y hemos llamado a los métodos acelerar y frenar del objeto. También
hemos impreso la marca, modelo y velocidad actual del objeto en la consola.

18
Herencia

La herencia es un concepto fundamental de la programación orientada a objetos que permite crear


una nueva clase a partir de una clase existente, manteniendo sus características y agregando
nuevas funcionalidades.

En la herencia, la clase existente se conoce como la clase base o padre, y la nueva clase se conoce
como la clase derivada o hija. La clase hija hereda los atributos y métodos de la clase base, lo que
permite reutilizar el código y evitar la duplicación innecesaria.

Creación de una clase que hereda de otra clase existente

Para crear una clase que hereda de otra clase existente, se utiliza la sintaxis "class
ClaseHija(ClasePadre):". La clase hija hereda todos los atributos y métodos de la clase padre, y
puede agregar nuevos atributos y métodos, o sobrescribir los existentes.

19
class Vehiculo:
def __init__(self, marca, modelo, color):
self.marca = marca
self.modelo = modelo
self.color = color
def mostrar_info(self):
print("Marca:", self.marca)
print("Modelo:", self.modelo)
print("Color:", self.color)
class Coche(Vehiculo):
def __init__(self, marca, modelo, color, num_puertas):
super().__init__(marca, modelo, color)
self.num_puertas = num_puertas
def mostrar_info(self):
super().mostrar_info()
print("Número de puertas:", self.num_puertas)

En este ejemplo, se define una clase base "Vehiculo" que tiene los atributos "marca",
"modelo" y "color", y un método "mostrar_info" que muestra la información
del vehículo. Luego, se define una clase hija "Coche" que hereda de la clase
"Vehiculo" y agrega un nuevo atributo "num_puertas". Además, se sobrescribe
el método "mostrar_info" para mostrar también el número de puertas.

20
Sobrescritura de métodos de la clase base en la clase hija

La sobrescritura de métodos en la clase hija permite modificar el comportamiento de un método


heredado de la clase base. Para hacerlo, simplemente se define un método con el mismo nombre
en la clase hija, y se implementa el comportamiento deseado.

En el ejemplo anterior, se sobrescribe el método "mostrar_info" en la clase hija "Coche" para


agregar el número de puertas a la información que se muestra.

Ejemplo de uso de herencia en una clase

Un ejemplo común de uso de la herencia es en la creación de una clase "Animal"


como clase base, y luego crear clases hijas para cada tipo de animal específico, como
"Perro", "Gato", "Pájaro", etc. De esta manera, se puede heredar el comportamiento
común a todos los animales, como "respirar" y "moverse", y agregar comportamientos
específicos a cada tipo de animal, como "ladrar" en el caso de los perros.

21
Supongamos que tenemos una clase "Animal" que tiene como atributos "nombre" y "edad", y
un método "hacer_sonido". Luego, podemos crear una clase "Perro" que hereda de "Animal" y
agrega su propio atributo "raza" y su propio método "ladrar".

class Animal:
def __init__(self, nombre, edad):
self.nombre = nombre
self.edad = edad
def hacer_sonido(self):
print("Sonido genérico")
class Perro(Animal):
def __init__(self, nombre, edad, raza):
super().__init__(nombre, edad)
self.raza = raza
def hacer_sonido(self):
print("Guau!")
def ladrar(self):
print("El perro está ladrando.")

En este ejemplo, la clase "Perro" hereda de la clase "Animal" utilizando la


sintaxis class Perro(Animal):. Luego, la clase "Perro" tiene su propio método
hacer_sonido, que sobrescribe el método con el mismo nombre de la clase
base. Además, la clase "Perro" agrega su propio método ladrar.

22
Encapsulamiento

El encapsulamiento es un concepto en programación orientada a objetos (POO) que se refiere a


la capacidad de una clase para ocultar sus datos y métodos internos y solo exponer una interfaz
pública. Esto significa que los objetos de una clase solo pueden ser manipulados a través de
métodos públicos y no se pueden acceder directamente a los datos privados.

Los modificadores de acceso son palabras clave utilizadas para especificar los niveles de acceso
a los miembros de una clase. Hay tres modificadores de acceso en la mayoría de los lenguajes de
programación orientados a objetos: public, private y protected.

| public: cualquier objeto puede acceder al miembro desde cualquier lugar del programa.

| private: solo la propia clase puede acceder al miembro.

| protected: la clase y sus subclases (clases hijas) pueden acceder al miembro.

El encapsulamiento permite una mejor organización y modularidad del código, ya que los objetos
pueden interactuar con otros objetos a través de interfaces bien definidas en lugar de acceder
directamente a los datos internos de los objetos.

23
Un ejemplo de uso de encapsulamiento en una clase puede ser una clase "Cuenta Bancaria".
Los datos de la cuenta bancaria, como el saldo y el número de cuenta, se pueden ocultar utilizando
el modificador de acceso privado. Los métodos públicos, como depositar y retirar dinero, pueden
acceder a estos datos y realizar operaciones en la cuenta bancaria. Sin embargo, los objetos
externos no pueden acceder directamente al saldo o al número de cuenta.

A continuación, se muestra un ejercicio de creación de una clase con atributos y métodos


encapsulados en Python:

class Persona:
def __init__(self, nombre, edad):
self.__nombre = nombre
self.__edad = edad
def get_nombre(self):
return self.__nombre
def get_edad(self):
return self.__edad
def set_nombre(self, nombre):
self.__nombre = nombre
def set_edad(self, edad):
self.__edad = edad

24
En este ejemplo, la clase "Persona" tiene dos atributos privados, "__nombre" y "__edad". Los
métodos públicos "get_nombre", "get_edad", "set_nombre" y "set_edad" se utilizan para
acceder y modificar estos atributos de forma segura y controlada.

25
Desempeño 3

| Crear una clase "Rectángulo" con los atributos privados "base" y


"altura", y los métodos públicos "obtener_base", "obtener_altura",
"establecer_base" y "establecer_altura" para acceder y modificar los
atributos.
Solución

class Rectangulo:
def__init__(self, base, altura):
self.__base = base
self.__altura = altura
def obtener_base(self):
return self.__base
def obtener_altura(self):
return self.__altura
def establecer_base(self, base):
self.__base = base
def establecer_altura(self, altura):
self.__altura = altura

En este ejemplo, la clase "Rectangulo" tiene dos atributos privados, "__base" y "__altura", que
se inicializan en el constructor "init". Los métodos públicos "obtener_base", "obtener_altura",
"establecer_base" y "establecer_altura" se utilizan para acceder y modificar los atributos de
forma segura y controlada.

27
Polimorfismo

El polimorfismo es uno de los principales conceptos de la programación orientada a objetos. Se


refiere a la capacidad de un objeto de tomar diferentes formas. En otras palabras, un objeto puede
ser utilizado como si fuera de varios tipos diferentes.

En la práctica, esto significa que podemos utilizar un objeto en diferentes contextos, y que su
comportamiento variará en función de cómo se está utilizando. El polimorfismo se utiliza para
simplificar el código y reducir la complejidad.

Ejemplo de uso de polimorfismo en una clase:

Crea una clase "Vehículo" que tenga un método "mover". Luego, crea varias clases hijas como
"Coche", "Camión" y "Bicicleta", que sobrescriben el método "mover" para imprimir un mensaje
que describa cómo se mueve cada vehículo.

Por ejemplo, la clase "Coche" podría tener un método "mover" que imprima el mensaje "El
coche se mueve sobre cuatro ruedas", mientras que la clase "Bicicleta" podría tener un método
"mover" que imprima el mensaje "La bicicleta se mueve pedaleando".

28
Luego, crea objetos de cada clase y llama al método "mover" de la clase "Vehículo". Verifica que
el mensaje impreso sea el correspondiente a cada tipo de vehículo.

Solución

class Vehiculo:
det mover(self):
pass
class Coche (Vehiculo):
def mover(self):
print("El coche se mueve sobre cuatro ruedas")
class Camion(Vehiculo):
def mover(self):
print("El camión se mueve sobre seis ruedas")
class Bicicleta(Vehiculo):
def mover(self):
print("La bicicleta se mueve pedaleando")
# Creamos objetos de cada clase hija y llamamos al método mover de
la clase Vehiculo
coche = Coche()
coche.mover()
camion = Camion()
camion.mover()
bicicleta = Bicicleta()
bicicleta.mover()
29
Este código es un ejemplo de cómo implementar polimorfismo en Python. En este caso, se define
una clase base llamada "Vehiculo" con un método "mover" que no hace nada (solo tiene la
instrucción "pass" dentro de él).

Luego, se definen tres clases hijas: "Coche", "Camion" y "Bicicleta", que heredan de la clase
base "Vehiculo" y sobrescriben el método "mover" para imprimir un mensaje que describe cómo
se mueve cada vehículo. Finalmente, se crean objetos de cada clase hija ("Coche", "Camion" y
"Bicicleta") y se llama al método "mover" de la clase base "Vehiculo".

Al llamar al método "mover" de cada objeto, se ejecutará el método correspondiente definido


en la clase hija. Por ejemplo, cuando se crea un objeto de la clase "Coche" y se llama al método
"mover", se imprimirá el mensaje "El coche se mueve sobre cuatro ruedas".

Lo mismo sucederá cuando se cree un objeto de la clase "Camion" o "Bicicleta"


y se llame al método "mover". En resumen, este código ilustra cómo se puede
utilizar el polimorfismo para simplificar el código y reducir la complejidad, ya
que se pueden utilizar los objetos de las clases hijas como si fueran de la clase
base y el comportamiento variará en función de cómo se esté utilizando.

30
¡Felicitaciones!

Completaste el capítulo sobre programación orientada a objetos (POO) en Python.


Ahora deberías tener una comprensión sólida de los principales conceptos de POO, como la
encapsulación, la herencia y el polimorfismo, así como la capacidad de implementarlos en tu
propio código. ¡Sigue practicando y aplicando estos conceptos en tus proyectos para mejorar tu
habilidad en programación!

Elige uno de los ejercicios para presentar como actividad de la semana, y luego realiza los otros para
que practiques lo aprendido en esta clase. Recuerda que “la programación es práctica, práctica y
más práctica”

31
Desempeño 4

1| Crea una clase Persona con los atributos nombre y edad, y los 3| Crea una clase Empleado con los atributos nombre y salario, y el
métodos obtener_nombre() y obtener_edad(). Luego, crea una clase método obtener_salario(). Luego, crea una clase hija Gerente que
hija Estudiante que agregue el atributo promedio y el método obtener_ agregue el atributo bono y el método obtener_bono(). Crea objetos
promedio(). Crea objetos de ambas clases y llama a sus métodos para de ambas clases y llama a sus métodos para imprimir los atributos
imprimir los atributos correspondientes. correspondientes.

2| Crea una clase Mascota con los atributos nombre y edad, y el método 4| Crea una clase Figura con los atributos lado1 y lado2, y los métodos
sonar(), que imprima el sonido de la mascota. Luego, crea clases hijas obtener_area() y obtener_perimetro(). Luego, crea clases hijas para
para diferentes tipos de mascotas, como Perro, Gato y Pájaro, que diferentes tipos de figuras, como Rectangulo, Circulo y Triangulo, que
sobrescriban el método sonar() para imprimir el sonido correspondiente sobrescriban los métodos obtener_area() y obtener_perimetro() para
a cada tipo de mascota. calcular los valores correspondientes a cada tipo de figura.
5| Crea una clase Vehiculo con los atributos marca, modelo y precio,
y el método obtener_precio(). Luego, crea una clase hija Coche que
agregue el atributo color y el método obtener_color(). Crea objetos
de ambas clases y llama a sus métodos para imprimir los atributos
correspondientes.
Créditos

Imágenes

Encabezado: Image by Steve Buissinne from Pixabay


https://pixabay.com/photos/pawn-chess-pieces-strategy-chess-2430046/

Tipografía

Para este diseño se utilizó la tipografía Source Sans Pro diseñada por Paul D. Hunt. y
Space Mono diseñada por Colophon Foundry Extraída de Google Fonts.

Si detectás un error del tipo que fuere (falta un punto, un acento, una palabra
mal escrita, un error en código, etc.), por favor comunicate con nosotros a
[email protected] e indicanos por cada error que detectes la página
y el párrafo. Muchas gracias por tu aporte.

También podría gustarte