Está en la página 1de 5

Actividad 7 De programación

2. Conceptos (2.0)

A. ¿Qué es la herencia simple? De un ejemplo

Es una relación entre una clase padre (clase base) y una clase hija (clase derivada) llamada "es un
tipo de", que muchas veces se abrevia como isA.

La herencia es simple cuando la clase derivada que estamos considerando sólo tiene una clase
base.
Ejemplo:
#include <iostream>
using namespace std;

class Vehiculo {
public:
void avanza() {}
};

class Coche : public Vehiculo {


public:
void avanza(void)
{ cout << "Avanza coche." << endl; }
};

class Moto: public Vehiculo {


public:
void avanza(void)
{ cout << "Avanza moto." << endl; }
};

int main()
{
Moto t;
Coche c;

t.avanza();
c.avanza();

return 0;
}

B. ¿Qué es la herencia múltiple? De un ejemplo

La herencia múltiple se encuentra en aquellos casos en los que una clase derivada tiene varias
clases base (al menos, más de una).

Ejemplo:

Un ejemplo sería el de una clase de Profesor-Universitario que heredara de las clases Profesor e
Investigador.
La clase Profesor declararía la información que deseamos conocer sobre los profesores: su nombre
y la materia que imparten.

class Profesor {

private:

string nombre;

string materia;

public:

Profesor(const string &n, const string &m) : nombre( n ), materia( m )

{}

const string &getNombre() const

{ return nombre; }

const string &getMateria() const

{ return materia; }

};

La clase Investigador declararía la información que deseamos conocer sobre los investigadores: su
nombre y la especialidad en la que investigan.

class Investigador {

private:

string nombre;

string especialidad;

public:

Investigador (const string &n, const string &e) : nombre( n ), especialidad( e )

{}

const string &getNombre() const

{ return nombre; }

const string &getEspecialidad() const

{ return especialidad; }

};

La forma de crear la clase mediante herencia múltiple sería la siguiente:

class Profesor-Universitario : public Profesor, public Investigador {


public:

Profesor-Universitario(const string &n, const string &e, const string &m)

: public Profesor( n, m ), public Investigador( n, e )

{}

};

En principio, no es necesario nada más en la clase ProfesorUniversitario, ya que todo lo que


necesitamos para él viene dado por las clases superiores. Podríamos visualizar la información de
un ProfesorUniverstiario de la siguiente manera:

int main()

Profesor-Universitario p( "Baltasar", "Máquinas Virtuales", "Tecnología de Objetos" );

cout << p.getNombre() << ','

<< p.getMateria() << ','

<< p.getEspecialidad() << endl

C. Explique la Abstracción

La abstracción es una herramienta en el proceso de creación del modelo a partir de un problema


real que está determinada por los siguientes factores:

-Identificación de clases: los conceptos que tienen entidad en sí mismos, no dependen de otros, se
pueden describir, comprender y analizar pueden abstraerse como una clase.

-El objetivo del modelo: determina tanto el grado de detalle como la información relevante.

D. ¿Qué es UML?

El lenguaje unificado de modelado es el lenguaje de modelado de sistemas de software más


conocido y utilizado en la actualidad. Es un lenguaje gráfico para visualizar, especificar, construir y
documentar un sistema. UML ofrece un estándar para describir un "plano" del sistema (modelo),
incluyendo aspectos conceptuales tales como procesos, funciones del sistema, y aspectos
concretos como expresiones de lenguajes de programación, esquemas de bases de datos y
compuestos reciclados.
E. La Abstracción de _____clasificación______: Se utiliza para definir un concepto como una clase
de objetos de la realidad caracterizados por propiedades comunes.

F. La Abstracción de _____agregación______: Define una nueva clase a partir de un conjunto de


(otras, no necesariamente distintas) clases que representan sus partes componentes.

G. ¿Qué es polimorfismo? De un ejemplo de polimorfismo.

Es un concepto OOPs donde un nombre puede tener muchas formas. Por ejemplo, tiene un
teléfono inteligente para comunicarse. El modo de comunicación que elijas podría ser cualquier
cosa. Puede ser una llamada, un mensaje de texto, un mensaje de foto, correo, etc.

Ejemplo: Podemos crear dos clases distintas: Gato y Perro, que heredan de la superclase Animal.
La clase Animal tiene el método abstracto makesound () que se implementa de forma distinta en
cada una de las subclases (gatos y perros suenan de forma distinta). Entonces, un tercer objeto
puede enviar el mensaje de hacer sonido a un grupo de objetos Gato y Perro por medio de una
variable de referencia de clase Animal, haciendo así un uso polimórfico de dichos objetos respecto
del mensaje mover.

Como todos los objetos Gato y Perro son objetos Animales, podemos hacer lo siguiente
Creamos dos variables de referencia de tipo Animal y las apuntamos a los objetos Gato y Perro.
Ahora, podemos llamar a los métodos makeSound ().

H. ¿Qué es el modularidad en python?

La modularidad es una propiedad que nos permitirá subdividir nuestro programa en partes más
pequeñas (subprogramas) que habitualmente llamamos “módulos” las cuales deben ser
independientes de la aplicación o programa original en sí.

I. ¿Qué es el encapsulamiento en Python?

La encapsulación consiste en denegar el acceso a los atributos y métodos internos de la clase


desde el exterior. En Python no existe, pero se puede simular precediendo atributos y métodos
con dos barras bajas __ como indicando que son "especiales".

J. Investigue la función super en Python. Explique y de ejemplos

Esta función nos permite invocar y conservar un método o atributo de una clase padre (primaria)
desde una clase hija (secundaria) sin tener que nombrarla explícitamente. Esto nos brinda la
ventaja de poder cambiar el nombre de la clase padre (base) o hija (secundaria) cuando queramos
y aún así mantener un código funcional, sencillo y mantenible.

Ejemplo:

Llamar un método de otra clase padre con super () en python

También podría gustarte